IMPLEMENTASI KOMBINASI ALGORITMA KRIPTOGRAFI LUC DAN STEGANOGRAFI END OF FILE PADA
PENGAMANAN DATA TEKS
SKRIPSI
ANNISSA FADILLA
101401072
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
IMPLEMENTASI KOMBINASI ALGORITMA KRIPTOGRAFI LUC DAN STEGANOGRAFI END OF FILE PADA
PENGAMANAN DATA TEKS
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
ANNISSA FADILLA 101401072
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJ UAN
Judul : IMPLEMENTASI KOMBINASI ALGORITMA
KRIPTOGRAFI LUC DAN STEGANOGRAFI END
OF FILE PADA PENGAMANAN DATA TEKS
Kategori : SKRIPSI
Nama : ANNISSA FADILLA
Nomor Induk Mahasiswa : 101401072
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOM-TI)
Diluluskan di
Medan, 9 Desember 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
M. Andri Budiman, ST, M.Comp.Sc, MEM Dr. Elviawaty Muisa Zamzami, ST, MT, MM
NIP.197510082008011011 NIP.197007162005012002
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom
PERNYATAAN
IMPLEMENTASI KOMBINASI ALGORITMA KRIPTOGRAFI LUC DAN STEGANOGRAFI END OF FILE PADA
PENGAMANAN DATA TEKS
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, September 2014
Annissa Fadilla
PENGHARGAAN
Segala puji dan syukur bagi Allah SWT, atas segala limpahan rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Tidak lupa juga shalawat dan salam kepada tauladan umat Rasululloh Muhammad SAW.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof.Dr.dr.Syahril Pasaribu, DTM&H, MSc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara
2. Bapak Prof.Dr.Muhammad Zarlis, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan dosen pembanding II yang telah memberikan kritik dan saran guna memperbaiki kesalahan yang ada pada skripsi ini
5. Ibu Dr. Elviawaty Muisa Zamzami, ST, MT, MM selaku dosen pembimbing I yang telah memberikan bimbingan, kritik, dan saran kepada penulis dalam menyelesaikan skripsi ini
6. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku dosen pembimbing II yang memberikan bimbingan, kritik, saran dan dukungan kepada penulis mulai dari tahap pengambilan judul skripsi hingga penulis menyelesaikan skripsi ini.
7. Ibu Dian Rachmawati, S.Si, M.Kom selaku dosen pembanding I yang telah memberikan kritik dan saran guna memperbaiki kesalahan yang ada pada skripsi ini.
9. Seluruh dosen dan pegawai Program studi S1 Ilmu Komputer Fasilkom-TI USU
10. Ayahanda Ery Isnanto yang selalu memberikan kasih sayang, doa dan dukungan kepada penulis, Ibunda Almh Nazariah Hanum sosok yang selalu mengajarkan tentang kesabaran, usaha dan doa, serta adinda Muhammad Fadil Abdillah yang selalu memberikan doa dan dukungannya kepada penulis.
11. Sahabat yang selalu saling mendoakan dan memberi dukungan Zulwita Hariyati, Devina Pratiwi Halim, Nurul Ulfah Primadini, Uswatun Hasanah, Fanny Fairina Nadyaningrum, Aulia Akbar Harahap, Auliza Nanda Nasution, Bernard Darius Tarigan, Abangda Ahmad Royhan Putra Siregar dan Kakanda Fauzana Sudirman. Sahabat yang telah banyak membantu penulis Nurhennida Br. Sitepu serta teman-teman stambuk 2010 yang tidak dapat penulis sebutkan satu per satu.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Penulis menyadari bahwa skripsi ini masih jauh dari sempurna untuk itu penulis menerima kritik dan saran yang membangun agar dapat menyempurnakan skripsi ini. Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.
Medan, September 2014
ABSTRAK
Perkembangan teknologi informasi yang semakin melesat dewasa ini memberikan kemudahan bagi siapa saja dalam melakukan komunikasi ataupun pertukaran informasi. Di sisi lain, dengan kemudahan tersebut timbul juga permasalahan lain dalam hal keamanan dan kerahasiaan data yang dapat terganggu oleh tindakan kejahatan komputer seperti penyadapan, perusakan ataupun pencurian data dan informasi. Kombinasi kriptografi dan steganografi dapat menjadi salah satu solusi untuk mencegah tindak kejahatan komputer tersebut. Kriptografi merupakan seni atau ilmu untuk menjaga keamanan data dengan cara mengacak data atau pesan. Sedangkan steganografi merupakan ilmu dan seni untuk menyembunyikan pesan dalam suatu media lain. Pada penelitian ini, pesan atau file teks yang akan dikirim terlebih dahulu enkripsi dengan algoritma kriptografi LUC, selanjutnya hasil enkripsi akan disembunyikan pada suatu file citra dengan format bitmap dengan menggunakan metode steganografi End of File. Kemudian dilakukan proses ekstraksi pesan dari dalam citra untuk selanjutnya di dekripsi agar kembali menjadi pesan asli. Implementasi sistem menggunakan MatLab R2012a. Sistem diuji dengan melakukan proses enkripsi dan dekripsi, serta penyisipan dan ekstraksi pesan hingga 100.000 karakter. Hasil pengujian menunjukkan bahwa panjang karakter yang dienkripsi dan didekripsi berbanding lurus dengan kecepatan waktu eksekusi.
IMPLEMENTATION OF COMBINATION OF CRYPTOGRAPHY LUC ALGORITHM AND STEGANOGRAPHY END OF FILE
ON DATA TEXT SECURITY
ABSTRACT
The rapid development in information technology these days provides the convenience for everyone to communicate or exchange information. On the other hand, along with those conveniences, another problem arises in terms of security and confidentiality of the data that can be disrupted by computer criminality, such as tapping, theft or destruction of data and information. The combination of cryptography and steganography can be one of the solutions to prevent such computer criminality. Cryptography is an art or knowledge to secure data by scrambling the data or message. Meanwhile, steganography is a knowledge and art to hide messages in other media. In this research, messages or file text that will be sent is encrypted first with LUC algorithm, and then the ciphertext will be hidden in an image file with a bitmap format using the steganography End of File method. Later on, extraction will be done to the message in the image to be decrypted to the original message. Implementation of the system will use MatLab R2012a. System was tested by performing encryption and decryption process, as well as the embedding and extraction of the message to 100.000 characters. The test result showed that the length of the encrypted and decrypted character is proportional to the speed of the execution time.
DAFTAR ISI
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
Bab II Landasan Teori
2.1 Teori Bilangan 6
2.2.1 Algoritma Simetris 10
2.2.2 Algoritma Asimetris (Public Key Algorithm) 11 2.2.3 Algoritma Asimetris Non Public Key 12
2.3 Algoritma Kriptografi LUC 12
2.3.1 Pembangkitan Kunci LUC 13
2.3.2 Lehmann Prime Generator 13
2.3.3 Algoritma Enkripsi LUC 14
2.3.4 Algoritma Dekripsi LUC 15
2.4 Steganografi 15
2.4.1 Steganografi End of FIle 16
Bab III Analisis dan Perancangan
3.1 Analisis Algoritma Kriptografi LUC dan Steganografi End of File 19 3.1.1 Analisis Algoritma Kriptografi LUC 19
3.2 Analisis Sistem 26
3.2.1 Analisis Persyaratan 26
3.2.1.1 Analisis Persyaratan Fungsional 26 3.2.1.2 Analisis Persyaratan Non Fungsional 26
3.2.2 Analisis Masalah 27
3.3 Perancangan Sistem 28
3.3.1 Flowchart Sistem 28
3.3.1.1 Flowchart Proses Pembangkitan Kunci 28 3.3.1.2 Flowchart Proses Enkripsi/Penyisipan 30 3.3.1.3 Flowchart Proses Ekstraksi/Dekripsi 31 3.3.1.4 Flowchart Lehmann Primw Generator 32
3.3.2 UML Diagram 32
3.3.4 Interface Sistem 43
3.3.4.1 Tampilan Halaman Utama 44 3.3.4.2 Tampilan Menu Key Generator 45 3.3.4.3 Tampilan Submenu Enkripsi/Penyisipan 46 3.3.4.4 Tampilan Submenu Ekstraksi/Dekripsi 47
3.3.4.5 Tampilan Menu About 49
3.3.4.6 Tampilan Menu Help 49
Bab IV Implementasi dan Pengujian
4.1.1.5 Tampilan Halaman Menu About 55 4.1.1.6 Tampilan Halaman Menu Help 55
4.2 Pengujian Sistem 56
4.2.1 Pengujian Proses Pembangkitan Kunci 56 4.2.2 Pengujian Proses Enkripsi dan Penyisipan 57 4.2.3 Pengujian Proses Ekstraksi dan Dekripsi 63
4.3 Hasil Pengujian 65
4.3.1 Hasil Pengujian Proses Enkripsi LUC 65 4.3.2 Hasil Pengujian Proses Penyisipan End of File 67 4.3.3 Hasil Pengujian Proses Ekstraksi End of File 71 4.3.4 Hasil Pengujian Proses Dekripsi LUC 73
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 76
5.2 Saran 76
DAFTAR TABEL
Halaman
Tabel 2.1 Perhitungan barisan Lucas sampai n=10 13 Tabel 3.1 Proses perhitungan kunci dekripsi d 20 Tabel 3.2 Spesifikasi Use Case Pembangkit Kunci 33 Tabel 3.3 Spesifikasi Use Case Enkripsi/Penyisipan 34 Tabel 3.4 Spesifikasi Use Case Ekstraksi/Dekripsi 35
Tabel 4.1 Perhitungan Proses Enkripsi 66
Tabel 4.2 Rincian Waktu Proses Enkripsi 67
Tabel 4.3 Rincian Waktu Proses Penyisipan (Embedding) 68 Tabel 4.4 Rincian ukuran citra ynag dihasilkan berdasarkan jumlah karakter pesan 69
Tabel 4.5 Rincian Waktu Proses Ekstraksi 72
Tabel 4.6 Perhitungan Proses Dekripsi 73
Tabel 4.7 Rincian Waktu Proses Dekripsi 74
Tabel 4.8 Hasil percobaan waktu proses enkripsi dan dekripsi dengan beberapa kunci
DAFTAR GAMBAR
Halaman
Gambar 2.1 Skema Kriptografi Algoritma Simetris 10 Gambar 2.2 Skema Kriptografi Algoritma Asimetris 11 Gambar 2.3 Skema Kriptografi Algoritma Non Public Key 12 Gambar 2.4 Perbedaan Steganografi dan Kriptografi 16
Gambar 2.5 Citra *bmp true color 16
Gambar 2.6 Citra setelah disisip pesan 17
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 28
Gambar 3.2 Flowchart Pembangkitan Kunci 29
Gambar 3.3 Flowchart Proses Enkripsi/Penyisipan 30 Gambar 3.4 Flowchart Proses Ekstraksi/Dekripsi 31 Gambar 3.5 Flowchart Pembangkit Bilangan Prima Lehmann 32
Gambar 3.6 Use Case Diagram Sistem 33
Gambar 3.7 Activity Diagram Proses Enkripsi/Penyisipan 36 Gambar 3.8 Activity Diagram Proses Ekstraksi/Dekripsi 37 Gambar 3.9 Sequence Diagram Proses Pembangkitan Kunci 38 Gambar 3.10 Sequence Diagram Proses Enkripsi/Penyisipan 39 Gambar 3.11 Sequence Diagram Proses Ekstraksi/Dekripsi 40 Gambar 3.12 Rancangan Halaman Utama Sistem 44
Gambar 3.13 Rancangan Menu Key Generator 45
Gambar 3.14 Rancangan Submenu Enkripsi/Penyisipan 46 Gambar 3.15 Rancangan Submenu Ekstraksi/Dekripsi 48
Gambar 3.16 Rancangan Menu About 49
Gambar 3.17 Rancangan Menu Help 50
Gambar 4.1 Tampilan Halaman Utama 51
Gambar 4.2 Tampilan Submenu pada Menu Process 52 Gambar 4.3 Tampilan Halaman Key Generator 52 Gambar 4.4 Tampilan Halaman Enkripsi/Penyisipan 53 Gambar 4.5 Tampilan Halaman Ekstraksi/Dekripsi 54
Gambar 4.6 Tampilan Halaman About 55
Gambar 4.7 Tampilan Halaman Help 56
Gambar 4.8 Hasil proses pembangkitan kunci 57 Gambar 4.9a Input Plaintext secara langsung 58 Gambar 4.9b Input Plaintext dengan memilih file teks 58 Gambar 4.10 Pesan dialog berupa untuk mengisi pesan terlebih dahulu 59 Gambar 4.11 Pesan dialog berupa peringatan kunci enkripsi dan nilai N tidak boleh
Gambar 4.13 User memilih citra *bmp sebagai citra cover 60 Gambar 4.14 Citra cover yang telah dipilih 61 Gambar 4.15 Citra Stego yang dihasilkan setelah proses penyisipan 62 Gambar 4.16 Proses penyimpanan citra stego 62
Gambar 4.17 User memilih citra stego 63
Gambar 4.18 Proses ekstraksi ciphertext dari citra stego 63 Gambar 4.19 Pesan dialog citra tidak menyimpan pesan rahasia 64 Gambar 4.20 Pesan dialog berupa peringatan kunci dekripsi dan nilai N tidak boleh
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
ABSTRAK
Perkembangan teknologi informasi yang semakin melesat dewasa ini memberikan kemudahan bagi siapa saja dalam melakukan komunikasi ataupun pertukaran informasi. Di sisi lain, dengan kemudahan tersebut timbul juga permasalahan lain dalam hal keamanan dan kerahasiaan data yang dapat terganggu oleh tindakan kejahatan komputer seperti penyadapan, perusakan ataupun pencurian data dan informasi. Kombinasi kriptografi dan steganografi dapat menjadi salah satu solusi untuk mencegah tindak kejahatan komputer tersebut. Kriptografi merupakan seni atau ilmu untuk menjaga keamanan data dengan cara mengacak data atau pesan. Sedangkan steganografi merupakan ilmu dan seni untuk menyembunyikan pesan dalam suatu media lain. Pada penelitian ini, pesan atau file teks yang akan dikirim terlebih dahulu enkripsi dengan algoritma kriptografi LUC, selanjutnya hasil enkripsi akan disembunyikan pada suatu file citra dengan format bitmap dengan menggunakan metode steganografi End of File. Kemudian dilakukan proses ekstraksi pesan dari dalam citra untuk selanjutnya di dekripsi agar kembali menjadi pesan asli. Implementasi sistem menggunakan MatLab R2012a. Sistem diuji dengan melakukan proses enkripsi dan dekripsi, serta penyisipan dan ekstraksi pesan hingga 100.000 karakter. Hasil pengujian menunjukkan bahwa panjang karakter yang dienkripsi dan didekripsi berbanding lurus dengan kecepatan waktu eksekusi.
IMPLEMENTATION OF COMBINATION OF CRYPTOGRAPHY LUC ALGORITHM AND STEGANOGRAPHY END OF FILE
ON DATA TEXT SECURITY
ABSTRACT
The rapid development in information technology these days provides the convenience for everyone to communicate or exchange information. On the other hand, along with those conveniences, another problem arises in terms of security and confidentiality of the data that can be disrupted by computer criminality, such as tapping, theft or destruction of data and information. The combination of cryptography and steganography can be one of the solutions to prevent such computer criminality. Cryptography is an art or knowledge to secure data by scrambling the data or message. Meanwhile, steganography is a knowledge and art to hide messages in other media. In this research, messages or file text that will be sent is encrypted first with LUC algorithm, and then the ciphertext will be hidden in an image file with a bitmap format using the steganography End of File method. Later on, extraction will be done to the message in the image to be decrypted to the original message. Implementation of the system will use MatLab R2012a. System was tested by performing encryption and decryption process, as well as the embedding and extraction of the message to 100.000 characters. The test result showed that the length of the encrypted and decrypted character is proportional to the speed of the execution time.
BAB I
PENDAHULUAN
1.1 Latar Belakang
Keamanan dan kerahasiaan informasi merupakan hal yang sangat penting bagi suatu
individu, organisasi ataupun perusahaan. Suatu data atau informasi akan memiliki
nilai yang lebih tinggi jika menyangkut tentang aspek-aspek bisnis, keamanan ataupun
kepentingan umum. Informasi-informasi tersebut tentunya akan banyak diminati oleh
berbagai pihak yang juga memiliki kepentingan didalamnya. Terlebih lagi dengan
perkembangan teknologi informasi dewasa ini, yang memberikan kemudahan bagi
kita untuk melakukan komunikasi dan pertukaran informasi melalui internet. Hal ini
juga dapat meningkatkan tindakan kejahatan komputer yang dapat dilakukan melalui
teknologi yang biasa disebut dengan istilah cybercrime, seperti penyadapan, pencurian
ataupun perusakan data atau informasi.
Untuk melindungi dan menjaga kerahasiaan informasi agar terhindar dari
tindakan-tindakan kejahatan komputer oleh orang-orang yang tidak berhak, maka
salah satu cara yang dapat dilakukan adalah dengan memanfaatkan teknik kriptografi.
Kriptografi merupakan ilmu dan seni untuk menjaga keamanan pesan ketika pesan
dikirim dari suatu tempat ketempat yang lain [3]. Pesan asli disebut plaintext dan
pesan rahasia disebut ciphertext. Proses untuk mengubah plaintext menjadi ciphertext
disebut dengan enkripsi atau enciphering. Sebaliknya, proses mengubah ciphertext
menjadi plaintext disebut dengan dekripsi atau deciphering [9].
Salah satu metode kriptografi adalah algoritma LUC. Algoritma ini pertama
kali diperkenalkan oleh Peter J. Smith dan Michael J. J. Lennon pada tahun 1993 di
New Zealand. Algoritma ini merupakan algoritma kunci publik yang berbasis dari
Lucas Function [2].
Selain dengan kriptografi, cara lain yang dapat digunakan untuk melindungi
kerahasiaan informasi adalah dengan teknik steganografi. Steganografi merupakan
ilmu dan seni untuk menyembunyikan pesan dalam suatu media sehingga orang lain
tidak menyadari keberadaan pesan tersebut. Berbeda dengan kriptografi yang
kecurigaan dengan cara menyamarkan pesan tersebut [4]. Kombinasi antara
kriptografi dan steganografi ini diharapkan dapat menghasilkan perlindungan yang
lebih baik bagi pesan/informasi, yaitu dengan mengenkripsikan pesan terlebih dahulu
dengan teknik kriptografi, lalu menyembunyikan pesan yang telah dienkripsi dengan
teknik steganografi.
Sebelumnya Saputra et al. (2006) telah melakukan penelitian tentang
Kriptografi Teks dengan Menggunakan Algoritma LUC. Pada penelitian tersebut
dihasilkan enkripsi berupa teks yang telah disandikan dalam bentuk bilangan [12].
Selanjutnya Irawan (2013) juga melakukan penelitian tentang sistem keamanan pesan
pada Android dengan algoritma LUC yang berhasil mengenkripsi pesan huruf kapital
di Android Gingerbread (2.3.4) [7]. Selain itu Wandani (2012) melakukan penelitian
yang menerapkan sistem keamanan data dengan tenkik steganografi End of File dan
Rabin Public Key Cryptosystem. Penelitian tersebut berhasil menyisipkan pesan
rahasia yang sebelumnya telah dienkripsi ke dalam sebuah citra [16].
Berdasarkan pemaparan di atas, maka penulis akan mencoba melakukan
penelitian dengan judul “Implementasi Kombinasi Algoritma Kriptografi LUC dan
Steganografi End of File pada Pengamanan Data Teks”.
1.2 Rumusan Masalah
Rumusan masalah yang akan dibahas pada penelitian ini adalah bagaimana
menerapkan kombinasi antara algoritma kriptografi LUC dengan steganografi End of
File untuk pengamanan data teks.
1.3 Batasan Masalah
Beberapa batasan masalah pada penelitian ini adalah sebagai berikut:
1. Pengujian bilangan prima yang digunakan adalah algoritma Lehmann
2. Pesan berupa inputan langsung dan dalam bentuk *.txt dan *.rtf
3. Media penyisipan pesan adalah citra true color 24 bit dengan format *.bmp
4. Pesan yang dapat dienkripsi adalah karakter-karakter didalam tabel ASCII
(American Standard Code for Information Interchange)
1.4Tujuan Penelitian
1. Mengetahui proses enkripsi dan dekripsi pesan teks dengan menggunakan
algoritma kriptografi LUC
2. Mengetahui proses penyisipan dan ekstraksi pesan teks dengan menggunakan
algoritma steganografi End of File
3. Merancang aplikasi yang mengkombinasikan algoritma kriptografi LUC dan
steganografi End of File
1.5 Manfaat Penelitian
Manfaat dari penelitian ini yaitu:
1. Menjaga keamanan dan kerahasiaan pesan yang akan dikirim/didistribusikan
dengan menerapkan algoritma kriptografi LUC dan teknik steganografi End of
File.
2. Sebagai bahan referensi bagi peneliti lain yang ingin melakukan penelitian
dalam bidang kriptografi dan steganografi
1.6 Metodologi Penelitian
Metode penelitian yang dilakukan dalam penelitian ini adalah:
1. Studi literatur
Dilakukan pengumpulan bahan referensi yang dapat berupa buku, jurnal,
makalah, e-book, serta hasil penelitian yang berkaitan tentang algoritma
kriptografi LUC dan steganografi End of File.
2. Analisis dan Perancangan
Pada tahap ini, dilakukan analisis terhadap algoritma kriptografi LUC dan
steganografi End of File, serta analisis masalah dan analisis persyaratan sistem.
Selanjutnya dilakukan perancangan dalam bentuk flowchart, pseudocode dan
3. Implementasi
Algoritma kriptografi LUC dan steganografi End of File diimplementasikan
kedalam bentuk aplikasi perangkat lunak untuk pengamanan data teks
4. Pengujian
Pengujian dilakukan terhadap keberhasilan proses yang dilakukan dalam
kriptografi (pembangkitan kunci, enkripsi dan dekripsi) serta proses peyisipan dan
ekstraksi pesan rahasia.
5. Dokumentasi
Selama analisis dan perancangan sistem hingga pengujian, dilakukan
pendokumentasian berupa laporan skripsi.
1.7 Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu:
BAB I PENDAHULUAN
Bab ini menjelaskan latar belakang judul skripsi ”Implementasi
Kombinasi Algoritma Kriptografi LUC dan Steganografi End of File
pada Pengamanan Data Teks”, rumusan masalah, batasan masalah,
tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika
penulisan.
BAB II LANDASAN TEORI
Bab ini berisi penjelasan mengenai sistem kriptografi dan teori-teori
dasar yang digunakan dalam algoritma LUC, serta steganografi End of
File.
BAB III ANALISIS DAN PERANCANGAN
Bab ini membahas analisis terhadap masalah peelitian dan perancangan
BAB IV IMPLEMENTASI DAN PENGUJ IAN
Bab ini berisi implementasi algoritma kriptografi LUC dan steganografi
End of File, pengujian terhadap sistem yang telah dibangun, serta
pembahasan hasil pengujian.
BAB V KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari keseluruhan uraian bab-bab
sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan
BAB II
suatu bilangan x ∈ Z sehingga membentuk a = bx. Jika b tidak habis dibagi dengan a
atau b mod a ≠ 0, maka dapat dinotasikan sebagai a | b [9].
Contoh:
3 | 9 9 ÷ 3 = 3 atau 9 mod 3 = 0
3 | 5 5 ÷ 3 = 1,67 atau 5 mod 3 = 2
2.1.2 Greatest Common Divisor (GCD)
Misalkan a,b ∈Z dan a,b ≠ 0, maka ddisebut Greatest Common Divisor (GCD) atau
Faktor Persekutuan Terbesar (FPB) dari a dan b jika:
(i) d > 0
(ii) d|a dan d|b
dan dinotasikan sebagai d = gcd(a,b) [9].
Contoh:
Faktor Pembagi 15 = {1,3,5,15}
Faktor Pembagi 25 = {1,5,25}
Maka gcd(15,25) adalah 5
2.1.3 Algoritma Euclidean
Algoritma Euclidean merupakan algoritma yang digunakan untuk mencari gcd dari
dua bilangan bulat. Algoritma ini ditemukan oleh seorang matematikawan Yunani
bernama Euclid, yang menuliskan algoritmanya tersebut dalam bukunya yang
Misalkan m dan n adalah bilangan bulat tak negatif dengan m ≥ n. Misalkan r0
= m dan r1 = n. Lakukan pembagian secara berturut – turut untuk memperoleh
r0 = r1q1 + r2 0 ≤ r2 ≤ r1,
11 dan 7 relatif prima karena gcd(11,7) = 1
15 dan 5 tidak relatif prima karena gcd(15,5) = 0 ≠ 1
2.1.5 Least Common Multiple (LCM)
Misalkan a,b dan d ∈Z,d disebut Least Common Multiple atau Kelipatan Persekutuan
(i) d > 0
2.1.6 Ar itmatika Modulo
Misalkan a,m ∈Z dan m > 0, operasi a mod m (dibaca “a modulo m”) memberikan
jika memiliki sisa yang sama jika dibagi dengan bilangan positif m. Hal ini
Contoh:
Invers Modulo dari 4 mod 11
a-1 a-1. 4 (mod 11)
Secara etimologi, Kriptografi berasal dari bahasa Yunani, yaitu krypto dan graphia.
Kripto berarti rahasia dan graphia yang berarti tulisan. Menurut terminologinya
kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim
dari suatu tempat ketempat yang lain. Dalam perkembangannya, kriptografi juga
digunakan untuk mengidentifikasi pengiriman pesan dengan tanda tangan digital dan
keaslian pesan dengan sidik jari digital (fingerprint) [3].
Pada dasarnya, kriptografi terdiri dari beberapa komponen seperti [4]:
1. Enkripsi
Enkripsi merupakan hal yang sangat penting dalam kriptografi sebagai
pengamanan atas data yang dikirmkan agar rahasianya terjaga. Enkripsi
mengubah pesan asli (plaintext) menjadi kode-kode yang tidak dimengerti
(ciphertext).
2. Dekripsi
Dekripsi merupakan kebalikan dari proses enkripsi, yaitu mengubah kembali
pesan yang telah dienkripsi ke bentuk asalnya.
3. Kunci
Kunci yang dimaksud disini adalah kunci yang dipakai untuk melakukan proses
enkripsi dan dekripsi. Kunci terdiri atas dua, yaitu kunci pribadi (private key) dan
kunci publik (public key)
Ciphertext merupakan suatu pesan yang sudah melalui proses enkripsi. Pesan
yang ada pada ciphertext tidak bisa dibaca karena berisi karakter-karakter yang
tidak memiliki makna.
5. Plaintext
Plaintext merupakan suatu pesan bermakna yang akan diproses menggunakan
algoritma kriptografi agar menjadi ciphertext.
6. Pesan
Pesan bisa berupa data atau informasi yang dikirim melalui kurir, saluran
komunikasi data dan sebagainya.
7. Cryptanalysis
Cryptanalysis bisa diartikan sebagai analisis sandi untuk mendapatkan plaintext
tanpa harus mengetahui kunci secara wajar.
Adapun fungsi dari kriptografi adalah [13]:
- Confidentiality (Kerahaasiaan). Menjaga agar pesan tidak dapat dibaca oleh
pihak-pihak yang tidak berhak.
- Authentication (Otentikasi). Memungkinkan penerima pesan untuk
memastikan asal usulnya ; artinya seorang penyelundup tidak dapat
menyamarkan dirinya sebagai orang lain
- Integrity (Integritas Data). Memungkinkan penerima pesan untuk
membuktikan bahwa pesan tidak di modifikasi/manipulasi selama dalam
pengiriman; artinya seorang penyelundup tidak bisa menukar pesan yang asli
dengan pesan yang salah.
- Nonrepudiation (Non-Penyangkalan). Pengirim tidak bisa menyangkal bahwa
ia telah mengirimkan pesan.
2.2.1 Algoritma Simetris
Algoritma simetris merupakan algoritma yang menggunakan kunci yang sama pada
proses enkripsi dan dekripsinya. Algoritma simetris juga biasa disebut algoritma
konvensional. Sistem kriptografi dengan algoritma simetris ini mengasumsikan
pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan.
Gambar 2.1 Skema Kriptografi Algortma Simetris. [10].
Algoritma simetris dibagi menjadi dua kategori, yaitu stream cipher (cipher
aliran) dan block cipher. Stream cipher beroperasi dengan melakukan enkripsi dan
dekripsi terhadap satu bit atau satu byte data. Sedangkan block cipher beroperasi
dengan melakukan enkripsi dan dekripsi terhadap satu blok data [13].
Beberapa sistem kriptografi yang menggunakan algoritma simetris adalah [3]:
- One Time Pad
- RC 4
- Data Encryption Standard (DES)
- Advanced Encryption Standard (AES)
2.2.2 Algoritma Asimetris (Public Key Algorithm)
Algoritma asimetris merupakan algoritma yang memiliki kunci yang berbeda untuk
proses enkripsi dan dekripsinya. Algoritma ini biasa juga disebut dengan algoritma
kunci publik karena kunci untuk proses enkripsi bersifat publik, artinya siapapun bisa
menggunakan kunci tersebut untuk melakukan enkripsi. Sementara itu, kunci untuk
mendekripsikan pesan bersifat privat sehingga hanya si penerima pesan yang dapat
mendekripsikan pesan karena hanya ia yang mengetahui kunci privatnya sendiri [13].
Contoh sistem kriptografi yang menggunakan algoritma kunci publik adalah
RSA (Rivest Shamir Adleman), ElGamal dan LUC.
2.2.3 Algoritma Asimetris Non Public Key
Algoritma kriptografi non Public Key merupakan algoritma kriptografi dimana kunci
yang digunakan untuk proses enkripsi dan dekripsinya berbeda, maka tidak termasuk
algoritma simetris. Namun algoritma ini tidak termasuk dalam kriptografi kunci
publik karena kedua kunci dapat dengan mudah diturunkan satu sama lain, jadi kedua
kuncinya harus tetap dirahasiakan. Contoh algoritma yang menggunakan kriptografi
non-public key adalah Pohlig-Hellman [13].
Gambar 2.3. Skema Kriptografi Algoritma NonPublic Key.
2.3 Algoritma Kriptografi LUC
Algoritma kriptografi LUC merupakan salah satu sistem kriptografi yang menerapkan
algoritma kunci publik. Algoritma ini dikemukakan oleh Peter J. Smith dan Michael
J.J. Lennon pada tahun 1993 di New Zealand. LUC memiliki tiga tahap utama, yaitu
pembangkitan kunci, enkripsi dan dekripsi [2].
LUC dibangun berdasarkan fungsi Lucas (Lucas Function). Penggunaan
fungsi Lucas didalam mengolah data dari plaintext menjadi ciphertext atau sebaliknya
hampir menyerupai fungsi pemangkatan yang digunakan oleh RSA.
Fungsi Lucas merupakan fungsi deret dan yang dibangun dari dua
bilangan integer P dan Q. Kemudian dibangun sebuah persamaan kuadrat − + = 0. Jika akar dari persamaan tersebut adalah a dan b, maka didapatkan P = a+b
dan Q = ab. Kemudian fungsi Lucas didefinisikan sebagai berikut [2]:
= ( − ) / ( − ) (1)
Sistem kriptografi LUC hanya akan menggunakan deretan dengan nilai Q=1
sehingga persamaan (4) dapat didefinisikan sebagai
= − (5)
dimana n ≥ 2, = 2 dan =
Sebagai contoh dimisalkan P = 3, Q = 1, maka 10 barisan Lucas pertama:
Tabel 2.1 Perhitungan barisan Lucas sampai n=10. [12]
2.3.1 Pembangkitan Kunci LUC
Dibutuhkan dua buah kunci, yaitu kunci publik e dan kunci privat d untuk melakukan
proses enkripsi dan dekripsi pada LUC. Proses pembangkitan kunci dilakukan dengan
cara sebagai berikut [15]:
1. Pilih dua buah bilangan prima acak besar p dan q, dimana p ≠ q dan gcd(p,q) = 1
2. Hitung N = p . q
3. Ambil kunci publik acak e dengan syarat e relatif prima terhadap
ϕ(N) =(p-1)(p+1)(q-1)(q+1) atau gcd(e, ϕ(N)) = 1
R(N)=lcm((p-1),(q-1),(p+1),(q-1)) dan de =1 mod R(N)
2.3.2 Lehmann Prime Generator
Dalam algoritma kriptografi kunci publik diperlukan bilangan prima untuk proses
pembangkitan kunci. Salah satu algoritma pengujian bilangan prima adalah algoritma
Lehmann. Cara kerja algoritma Lehmann adalah sebagai berikut:
1. Pilih bilangan acak a yang lebih kecil dari p
2. Hitung = ( ) /
3. Jika ( ) / ≠ 1 atau− 1 ( ), maka p pasti bukan prima
4. Jika ( ) / ≡ 1 atau − 1 ( ), maka kemungkinan p bikan prima tidak
lebih dari 50%
Pengujian diulangi sebanyak t kali. Jika pehitungan menghasilkan nilai 1 atau -1,
tetapi tidak selalu 1, maka kemungkinan p adalah prima dengan tingkat kesalahan
tidak lebih dari 1/ 2 [13]. Pengujian sebaiknya dilakukan sehingga kemungkinan primanya ≥ 99%.
Contoh 1:
Misalkan penulis ingin melakukan pengujian apakah 9 adalah bilagan prima
a = 2
= 2( ) / 9
≡ 2 9
≡ 16 mod 9 ≡ 7 ( 9)
Maka, dapat disimpulkan jika 9 bukan bilangan prima.
Contoh 2:
Misalkan penulis ingin melakukan pengujian apakah 11 adalah bilangan prima
a = 2
= 2( ) / 11
≡ 2 11
≡ 32 mod 11 ≡ −1( 11) --- Kemungkinan tidak prima < 50 %
= 3( ) / 11 ≡ 3 11
≡ 243 mod 11 ≡ 1( 11) --- Kemungkinan prima 50 % + 25 % = 75 %
Setelah melakukan pengujian sebanyak dua kali dan menghasilkan nilai 1 dan -1,
maka dapat disimpulkan bahwa 11 adalah bilangan prima dengan kemungkinan prima
75 %.
2.3.3 Algoritma Enkr ipsi LUC
Dengan menggunakan kunci publik e yang telah dibangkitkan sebelumnya, maka proses
enkripsi pesan plaintext menjadi ciphertext dengan algoritma kriptografi LUC adalah
sebagai berikut:
C = =(P − ) mod N (6)
Fungsi enkripsi akan menghitung suku ke-n dari fungsi deret Lucas dengan
indeks n adalah kunci publik e dan P adalah plaintext. Proses enkripsi akan
menghasilkan ciphertextC.
2.3.4 Algoritma Dekr ipsi LUC
Untuk mengembalikan ciphertext C menjadi pesan asli/plaintext P, maka dilakukan
proses dekripsi dengan menggunakan kunci privat d. Fungsi dekripsi dengan algoritma
kriptografi LUC didefinisikan sebagai berikut:
P = =(C. − ) mod N (7)
Seperti pada proses enkripsi, fungsi dekripsi akan menghitung suku ke-n dari
fungsi deret Lucas dengan indeks n adalah kunci privat d dan C adalah ciphertext.
Proses dekripsi akan menghasilkan pesan asli/plaintextP.
2.4 Steganografi
Istilah steganografi berasal dari bahasa Yunani, yaitu steganos yang berarti penyamaran
atau penyembunyian dan graphein yang berarti tulisan. Jadi, steganografi bisa diartikan
sebagai ilmu dan seni menyamarkan/menyembunyikan pesan tertulis ke dalam pesan
ditumpanginya sehingga data yang ditumpanginya sebelum dan setelah proses
penyembunyian hampir terlihat sama.
Steganografi yang bersifat “computer-based” bisa diterapkan dengan
menggunakan berbagai media sebagai cover (media penyisipan). Media penyisipan
merupakan suatu media untuk menyimpan pesan rahasia. Beberapa contoh media
pemyimpan pesan rahasia yang digunakan dalam teknik steganografi antara lain adalah
teks, audio, citra dan video.
Perbedaan mendasar antara steganografi dengan kriptografi terletak pada proses
penyembunyian data dan hasil akhir proses tersebut. Kriptografi melakukan proses
pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar acak dan
berbeda dari aslinya. Sementara itu steganografi menyembunyikan data dalam data lain
dengan cara menumpanginya tanpa mengubah data yang ditumpanginya tersebut
sehingga tampilan data tetap terlihat sama [4]. Perbedaan steganografi dan kriptografi
terlihat pada Gambar 2.4.
Gambar 2.4 Perbedaan Steaganografi dan Kriptografi [1].
2.4.1 Steganografi End of File
Salah satu teknik dari steganografi adalah End of File. Teknik ini digunakan dengan
cara menambahkan data diakhir file citra. Pada teknik ini, data atau file yang akan
ditambahkan dapat lebih besar dari ukuran file citra[1].
Pesan yang disisipkan dengan metode ini jumlahnya tidak terbatas. Akan tetapi
Perhitungan kasar ukuran file yang telah disisipkan pesan sama dengan ukuran file
sebelum disisipkan pesan ditambah dengan ukuran pesan rahasia yang disisipkan.
Untuk mengenal data yang disisipkan pada akhir file, diperlukan suatu tanda pengenal
atau simbol pada awal dan akhir data yang akan disisipkan [14][16].
Misalkan sebuah citra ukuran 10x6 memiliki nilai pixel seperti Gambar 2.5.
Gambar 2.5 Citra *bmp true color
200 42 97 182 101 40 24 88 63 112
Citra RGB tersebut akan disisipkan ciphertext “79 75 69”. Kemudian ciphertext
yang akan ditambahkan diberi karakter “&&&” dengan kode ASCII 38 sebagai
penanda awal dan ÿÿÿ dengan kode ASCII 255 sebagai penanda akhir pesan.
Selanjutnya sisipkan pesan di akhir citra, sehingga citra menjadi:
Gambar 2.6 Citra setelah disisip pesan
Dan matriks tersebut akan dipetakan kembali dalam bentuk citra baru seperti Gambar
2.6 yang disebut stego image [7]. Jika besar plaintext tidak memenuhi lebar pixel
citra, maka akan ditambahkan nilai pixel 0 yang merepresentasi warna hitam.
2.5 Penelitian yang Relevan
Berikut adalah beberapa penelitian tentang algoritma kriptografi LUC dan
steganografi End of File:
1. Pada penelitian yang dilakukan Irawan [7]. Penelitian yang bertujuan untuk
merancang sebuah aplikasi yang mampu melakukan pengamanan pesan SMS
pada telepon seluler berbasis android dengan menggunakan algoritma
kriptografi LUC. Penelitian ini berhasil melakukan enkripsi dan dekripsi pesan
teks yang terdiri dari huruf kapital.
2. Pada penelitian yang dilakukan Jauyah [8]. Penelitian ini bertujuan untuk
membangun sebuah prototipe untuk aplikasi pengenalan telnet di lingkungan
sistem operasi Linux dengan menggunakan sistem kriptografi LUC. Selain itu,
peneliti juga melakukan perbandingan antara sistem kriptografi LUC dan RSA
dari aspek pelaksanaan dan keselamatan, dan menyatakan bahwa sistem kripto
sistem kripto RSA dan dapat dijadikan sebagai alternatif dengan kemampuan
yang cukup baik [8].
3. Penelitian yang dilakukan oleh Wandani [16]. Penelitian ini berhasil
mengkombinasikan algoritma kriptografi Rabin untuk mengenkripsi pesan
berupa angka, lalu menyisipkan pesan kedalam sebuah citra berformat *bmp
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Algoritma Kriptografi LUC dan Steganogr afi End of File
3.1.1 Analisis Algor itma Kriptografi LUC
Algoritma kriptografi LUC merupakan algoritma kriptografi yang menggunakan kunci
asimetris dan dibangun berdasarkan fungsi deret Lucas. Terdapat tiga proses utama
dalam algoritma kriptografi LUC, yaitu pembangkitan kunci, enkripsi dan dekripsi.
3.1.1.1 Pembangkitan Kunci LUC
Langkah – langkah yang digunakan dalam proses pembangkitan kunci LUC adalah
sebagai berikut:
5. Pilih dua buah bilangan prima acak besar p dan q, dimana p ≠ q dan gcd(p,q) = 1
Contoh:
Misalkan diketahui bilangan prima p = 13 dan q = 17
gcd(13,17) = 1
6. Hitung N = p . q
Contoh:
N = p.q
= 13. 17
N = 221
7. Ambil kunci publik acak e dengan syarat e relatif prima terhadap
ϕ(N) =(p-1)(p+1)(q-1)(q+1) atau gcd(e, ϕ(N)) = 1
Contoh:
= (13 – 1) · (17 – 1) · (13 +1) · (17 +1)
= 12 · 16 · 14 · 18 Φ (N) = 48384
• Pilih e secara acak dengan syarat gcd(e, Φ(N)) = 1
Misalkan e = 61, nilai memenuhi syarat karena gcd(61,48384) = 1
8. Hitung kunci dekripsi d dengan ketentuan
R(N)=lcm((p-1),(q-1),(p+1),(q-1)) dan de =1 mod R(N)
Contoh:
• Hitung nilai R(N) = lcm((12),(16),(14),(18))
R(N) = 1008
• Cari nilai dengan d·61 = 1 mod 1008 . proses pencarian nilai d dapat dilihat pada Tabel 3.1 dibawah ini
Tabel 3.1 Proses perhitungan kunci dekripsi d
3.1.1.2 Proses Enkr ipsi LUC
Dengan menggunakan kunci publik e yang telah dibangkitkan sebelumnya, maka proses
enkripsi pesan plaintext menjadi ciphertext dengan algoritma kriptografi LUC adalah
sebagai berikut:
1. Tentukan plaintext P dan ubah nilai P kedalam nilai ASCII
Contoh:
2. Hitung ciphertext C dengan menggunakan rumus:
C = =(P − ) mod N
dimana indeks n adalah kunci publik e dan P adalah plaintext.
Sesuai dengan ketetapan pada fungsi deret Lucas, maka nilai = 2 dan = .
Contoh:
Diketahui n = e = 61
N = 221
• Untuk P = 65
V0 = 2
V1 =P = 65
V2 = (P.V1 – V0)mod N
= (65.65- 2) mod 221
= 24
⋮
V97 = 143
• Untuk P = 75
V0 = 2
V1 =P = 75
V2 = (P.V1 – V0)mod N
= (75.75 - 2) mod 221
= 98
⋮
• Untuk P = 85
Maka, ciphertext yang diperoleh adalah “143 98 34”
3.1.1.3 Proses Dekr ipsi LUC
Untuk mengembalikan ciphertext C menjadi pesan asli/plaintext P, maka dilakukan
proses dekripsi dengan menggunakan kunci privat d. Langkah – langkah proses dekripsi
dengan algoritma kriptografi LUC didefinisikan sebagai berikut:
1. Tentukan ciphertext C
Contoh:
Misalkan ciphertext C = 143 98 34
2. Hitung plaintext P dengan menggunakan rumus:
V2 = (C.V1 – V0)mod N
= (143. 143 - 2) mod 221
=
⋮
V181 = 65 = A
• Untuk C = 98
V0 = 2
V1 =C = 98
V2 = (C.V1 – V0)mod N
= (98. 98 - 2) mod 221
= 99
⋮
V181 = 75 = K
• Untuk C = 34
V0 = 2
V1 =C = 34
V2 = (C.V1 – V0)mod N
= (34.34 - 2) mod 221
= 49
⋮
V181 = 85 = U
Maka, plaintext yang diperoleh adalah “AKU”
3.1.2 Analisis Metode Steganogr afi End of File
Steganografi End of File merupakan metode steganografi dimana penyisipan pesan
dilakukan pada akhir file, sehingga tidak akan mengganggu kualitas citra yang
disisipi. Pada steganografi End of File terdapat dua proses utama, proses penyisipan
pesan kedalam suatu file atau Embedding, dan proses pengambilan pesan dari suatu
file atau Extraction. File yang digunakan sebagai media penyisipan disebut cover.
Beberapa contoh media penyimpan pesan rahasia yang digunakan dalam teknik
steganografi antara lain adalah teks, audio, citra dan video.
Pada penelitian ini, media yang digunakan sebagai cover adalah citra true color
berformat *bmp. Sedangkan pesan yang akan disisipkan merupakan pesan teks pada file
berformat *txt atau *rtf yang sudah dienkripsi terlebih dahulu dengan algoritma
kriptografi LUC.
3.1.2.1 Proses Embedding Steganografi End of File
Langkah - langkah pada proses penyisipan pesan atau Embedding dengan
menggunakan metode steganografi End of File adalah sebagai berikut:
1. Input ciphertext yang akan disisipkan
Contoh:
Ciphertext yang akan disisipkan adalah “143 98 34”
2. Pilih citra *bmp yang akan digunakan sebagai citra cover dan baca nilai tiap pixel
dari citra cover
Contoh:
Misalkan citra dengan ukuran 10 x 6 dengan nilai pixel
3. Tambahkan ciphertext pada akhir pixel citra, beri penanda sebagai awal dan akhir
ciphertext.
Contoh:
Misalkan karakter penanda awal adalah “&&&” dengan nilai ASCII = 38 dan
karakter penanda akhir adalah “ÿÿÿ” dengan nilai ASCII = 255
196 10 97 182 101 40 24 88 63 112
nilai pixel 0 yang merepresentasi warna hitam.
4. Petakan kembali menjadi sebuah citra baru. Citra baru yang telah disisipi
ciphertext ini disebut stego image atau citra stego.
196 10 97 182 101 40 24 88 63 112
3.1.2.2 Proses Extraction Steganografi End of File
Langkah - langkah pada proses pengambilan pesan atau Extraction dengan
menggunakan metode steganografi End of File adalah sebagai berikut:
1. Inputkan citra stego dan baca nilai tiap pixel dari citra stego
Contoh:
196 10 97 182 101 40 24 88 63 112
25 150 45 200 75 28 56 90 88 100
176 56 77 100 25 200 84 211 78 33
101 34 250 40 100 60 90 111 143 77
44 66 99 125 190 200 31 80 92 111
38 38 38 143 98 34 255 255 255 0
2. Ambil nilai pixel awal karakter penanda sampai karakter penanda terakhir pada
baris akhir pixel citra stego
Contoh:
38 38 38 143 98 34 255 255 255 0
3. Petakan menjadi ciphertext
Contoh :
Ciphertext berada diantara nilai karakter penanda awal “&&&” dan karakter
penanda akhir “ÿÿÿ”, maka diperoleh ciphertext 143 98 34.
3.2 Analisis Sistem
3.2.1 Analisis Persyaratan (Requirement Analysis)
Analisis persyaratan tebagi menjadi dua, yaitu analisis persyaratan fungsional dan analisis
persyaratan non fungsional.
3.2.1.1 Analisis Persyaratan Fungsional (Functional Requirement)
Analisis fungsional pada sistem adalah segala proses – proses yang dapat dilakukan oleh
sistem. Pada penelitian ini persyaratan fungsional yang harus dipenuhi oleh sistem yaitu:
1. Melakukan proses enkripsi dan dekripsi suatu file berformat *txt dan *rtf dengan
algoritma kriptografi LUC
2. Melakukan proses penyisipan dan ekstraksi pesan teks kedalam dan dari citra true
color berformat *bmp dengan metode steganografi End of File
3. Menyimpan citra stego dalam format *bmp
4. Membangkitkan kunci dengan menggunakan pembangkit bilangan prima Lehmann
3.2.1.2 Analisis Persyaratan Non Fungsional (Non Functional Requirement)
Analisis non fungsional yaitu menyangkut masalah kinerja, mudah untuk dipelajari dan
1. Kinerja
Sistem yang dibangun dapat melakukan proses enkripsi pesan rahasia menggunakan
algoritma kriptografi LUC untuk selanjutnya disisipkan kedalam sebuah file citra
dengan metode steganografi End of File. Kemudian sistem dapat mengekstraksi
kembali pesan rahasia dan melakukan proses dekripsi pesan rahasia menjadi pesan asli.
2. Mudah dipelajari dan digunakan
Sistem yang dibangun harus bersifat user friendly, yaitu memiliki tampilan yang
sederhana agar dapat dengan mudah dipahami dan digunakan oleh pengguna (user).
3. Hemat biaya
Sistem yang yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat
pendukung lainnya yang dapat mengeluarkan biaya yang besar.
4. Dokumentasi
Sistem dapat menunjukkan waktu dari setiap proses yang dikerjakan (enkripsi,
dekripsi, penyisipan dan ekstraksi) serta menyimpan hasil penyisipan ciphertext ke
dalam sebuah citra, yaitu stego image dalam format *bmp.
5. Kontrol
Sistem yang dibangun memiliki kontrol pada beberapa fungsinya, sehingga untuk
melakukan suatu fungsi, user terlebih dahulu harus menginputkan data-data yang
diperlukan untuk menjalankan fungsi tersebut. Misalkan user ingin melakukan proses
embed tanpa memilih citra cover terlebih dahulu maka fungsi embed akan tetap
disable. Setelah user memilih citra cover fungsi embed akan menjadi enable.
3.2.2 Analisis Masalah
Analisis masalah akan digambarkan dengan diagram Ishikawa (fishbone diagram) atau
biasa juga disebut dengan cause and effect diagram, dimana masalah utama yang
Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Seperti yang terlihat pada Gambar 3.1, bagian segiempat yang paling kanan
merupakan bagian kepala yang menunjukkan masalah utama penelitian. Sementara itu
empat buah segiempat yang lainnya menunjukkan kategori masalah.
3.3 Perancangan Sistem
3.3.1 Flowchart Sistem
Flowchart atau diagram alir merupakan bagan yang terdiri dari simbol – simbol tertentu
untuk menunjukkan alur kerja atau langkah – langkah dalam penyelesaian suatu masalah
di dalam sistem. Pada sistem yang dibangun ini terdapat beberapa proses yang akan
direpresentasikan dengan flowchart, seperti proses pembangkitan kunci, enkripsi dan
penyisipan pesan, serta ekstraksi dan dekripsi.
3.3.1.1 Flowchart Proses Pembangkitan Kunci
Sebelum melakukan proses enkripsi dan dekripsi, telebih dahulu dilakukan proses
pembangkitan kunci. Pada proses ini nantinya akan dihasilkan nilai N, kunci publik e dan
kunci privat d. Proses pembangkitan kunci dapat dilihat pada flowchart seperti Gambar
3.3.1.2 Flowchart Proses Enkripsi/Penyisipan
Pada proses enkripsi dan penyisipan, user terlebih dahulu akan mengenkripsi pesan
dengan kriptografi LUC dan menghasilkan ciphertext yang kemudian akan disisipkan
kedalam sebuah citra dengan metode steganografi end of file sehingga menghasilkan
stego image. Langkah – langkah pada proses ini direpresentasikan kedalam sebuah
flowchart seperti yang telihat pada Gambar 3.3
3.3.1.3 Flowchart Proses Ekstr aksi/Dekripsi
Pada proses ekstraksi dan dekripsi, ciphertext akan diambil kembali dari stego image.
Selanjutnya ciphertext akan didekripsi sehingga menghasilkan plaintext atau pesan asli.
Langkah – langkah pada proses dapat dilihat pada flowchart seperti pada Gambar 3.4.
3.3.1.4 Flowchart Lehmann Prime Generator
Pada proses pembangkitan kunci sebelumnya, kita akan memerlukan bilangan prima.
Pada sistem ini digunakan pembangkit bilangan prima Lehmann untuk mendapatkan
bilangan prima yang akan diperlukan untuk proses pembangkitan kunci enkripsi dan
dekripsi. Proses pembangkitan bilangan prima Lehmann direpresentasikan dalam
flowchart seperti pada Gambar 3.5
Gambar 3.5 Flowchart Pembangkit Bilangan Prima Lehmann
3.3.2 UML (Unified Modeling Language) Diagram
3.3.2.1 Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem.
“Bagaimana” sistem tersebut melakukannya. Sebuah use case merepresentasikan sebuah
interaksi antara Actor (User) dengan sistem.
Berdasarkan analisis fungsional sistem yang telah dilakukan sebelumnya, use case
diagram sistem dirancang untuk merepresentasikan fungsionalitas sistem yang akan
dibuat sesuai dengan Gambar 3.6.
Gambar 3.6 Use Case Diagram Sistem
Pada Gambar 3.6 terlihat tiga use case utama yang dapat dilakukan sistem. Use
case pertama adalah use case Pembangkit Kunci. Spesifikasi untuk use case Pembangkit
Kunci dapat dilihat pada Tabel 3.2
Tabel 3.2 Spesifikasi Use Case Pembangkit Kunci
Use Case Name Pembangkit Kunci
Actors User
Description Melakukan proses pembangkitan kunci
Precondition User menjalankan aplikasi
Basic Flows
1. User menjalankan aplikasi pengamanan data
2. User memilih menu Key Generator
3. Sistem menampilkan halaman Key Generator
4. User menekan tombol “Generate”
5. Sistem akan menampilkan hasil dari pembangkitan kunci
6. User dapat menyimpan kunci yang telah dibangkitkan ke
dalam bentuk file *txt dengan menekan tombol “Save”
Alternative Flows -
Exception Flows -
Postcondition Sistem dapat menampilkan hasil pembangkitan kunci publik
dan kunci privat
Extension Points -
Use case kedua dari sistem adalah use case Enkripsi/Penyisipan. Spesifikasi untuk use
case Enkripsi/Penyisipan dapat dilihat pada Tabel 3.3.
Tabel 3.3 Spesifikasi Use Case Enkr ipsi/Penyisipan
Use Case Name: Enkripsi/Penyisipan
Actors User
Description Melakukan proses enkripsi dan penyisipan pesan
Precondition User mengakses menu Process
Basic Flows
1. User menjalankan aplikasi pengamanan data
2. User memilih menu Process
3. User memilih submenu Enkripsi/Penyisipan
4. Sistem menampilkan halaman Enkripsi/Penyisipan
5. User memasukkan pesan yang akan dienkripsi
(plaintext) dan kunci publik
6. User menekan tombol “Encrypt”
7. Sistem akan menampilkan hasil enkripsi berupa
ciphertext
8. User menekan tombol “Browse Image” untuk memilih
citra yang akan disisipi ciphertext
9. User menekan tombol “Embed” untuk menyisipkan
ciphertext kedalam citra
10. Sistem akan menampilkan citra stego
11. User menekan tombol “Save” untuk menyimpan file
Alt. Flows -
Postcondition User dapat melihat hasil penyisipan pesan rahasia yang
telah dienkripsi dalam bentuk citra stego
Extension Points -
Use case terakhir dari sistem adalah use case Ekstraksi/Dekripsi. Spesifikasi untuk use
case Ekstraksi/Dekripsi dapat dilihat pada Tabel 3.4.
Tabel 3.4 Spesifikasi Use Case Ekstraksi/Dekripsi
Use Case Name: Ekstraksi/Dekripsi
Actors User
Description Melakukan proses ekstraksi dan dekripsi pesan
Precondition User mengakses menu Process
Basic Flows
1. User menjalankan aplikasi pengamanan data
2. User memilih menu Process
3. User memilih submenu Ekstraksi/Dekripsi
4. Sistem menampilkan halaman Ekstraksi/Dekripsi
5. User menekan tombol “Browse Image” untuk memilih
citra stego
6. User menekan tombol “Extract” untuk mengambil
ciphertext dari citra stego
7. Sistem melakukan proses ekstrak dan menampilkan
ciphertext
8. User memasukkan ciphertext dan kunci privat
9. User menekan tombol “Decrypt”
10. Sistem akan menampilkan hasil dekripsi berupa plaintext
Alt. Flows -
Postcondition
User dapat melihat mengekstrak pesan dari citra stego yang
berupa ciphertext dan mendekripsikan ciphertext menjadi
plaintext.
3.3.2.2 Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi,
dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses
paralel yang mungkin terjadi pada beberapa eksekusi.
3.3.2.2.1 Activity Diagram Proses Enkripsi/Penyisipan
USER SYSTEM
Penjelasan tentang aliran aktifitas yang terjadi pada Gambar 3.7 adalah sebagai berikut:
1. User memasukkan pesanyang akan dienkripsi (plaintext) secara langsung atau
file teks berformat *txt dan *rtf
2. User memasukkan kunci publik e untuk proses enkripsi
3. Sistem akan melakukan proses enkripsi plaintext menggunakan algoritma
kriptografi LUC dan menghasilkan ciphertext
4. User memilih citra cover berformat *bmp sebagai citra yang akan disisipi
ciphertext
5. Sistem akan melakukan proses penyisipan ciphertext kedalam citra cover
dengan metode steganografi End of File dan menghasilkan citra stego.
3.3.2.2.2 Activity Diagram Proses Ekstraksi/Dekripsi
Gambar 3.8 Activity Diagram Proses Ekstraksi/Dekripsi
USER SYSTEM
Input Citra Stego Ekstraksi End of File
Input Kunci Privat Dekripsi LUC
Penjelasan tentang aliran aktifitas yang terjadi pada Gambar 3.8 adalah sebagai berikut:
1. User memasukkan citra stego
2. Sistem akan melakukan proses ekstraksi atau pengambilan pesan rahasia dari
citra dengan metode steganografi End of File dan menghasilkan ciphertext.
3. User memasukkan kunci privat d untuk proses dekripsi
4. Sistem akan melakukan proses dekripsi ciphertext dengan algoritma kriptografi
LUC dan menghasilkan plaintext.
3.3.2.3 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek didalam dan di sekitar sistem.
Interaksi tersebut merupakan message yang digambarkan terhadap waktu. Sequence
diagram terdiri antar dimensi vertikal (waktu) dan dimensi horizontal (objek – objek yang
terkait).
3.3.2.3.1 Sequence Diagram Proses Pembangkitan Kunci
Sequence diagram untuk proses pembangkitan kunci dapat dilihat pada Gambar 3.9.
Gambar 3.9 Sequence Diagram Proses Pembangkitan Kunci
Pada Gambar 3.9 dapat dilihat bahwa untuk melakukan proses pembangkitan
mengambil bilangan prima p dan q dengan menggunakan algoritma Lehmann. Setelah
bilangan p dan q didapatkan, sistem akan menghitung hasil dari N serta kunci e dan d.
Selanjutnya sistem akan menampilkan hasil p,q,N,e dan d kepada user.
3.3.2.3.2 Sequence Diagram Proses Enkripsi/Penyisipan
Sequence diagram untuk proses enkripsi/penyisipan dapat dilihat pada Gambar 3.10.
Gambar 3.10 Sequence Diagram Proses Enkr ipsi/Penyisipan
Pada Gambar 3.10 terlihat bahwa user menginputkan plaintext serta kunci e
dan N untuk melakukan enkripsi. Selanjutnya proses enkripsi akan dilakukan dengan
algoritma kriptografi LUC dan menghasilkan ciphertext. Setelah itu, user akan
memilih citra cover yang akan digunakan sebagai media penyisipan. Proses
penyisipan ciphertext ke dalam citra dilakukan dengan metode steganografi End of
3.3.2.3.3 Sequence Diagram Proses Ekstraksi/Dekripsi
Sequence diagram untuk proses ekstraksi/dekripsi dapat dilihat pada Gambar 3.11.
Gambar 3.11 Sequence Diagram Proses Ekstraksi/Dekripsi
Pada Gambar 3.11 terlihat bahwa user akan memilih citra stego yang ingin
diekstrak. Proses ekstraksi dilakukan dengan menggunakan metode steganografi End of
File dan menghasilkan ciphertext. Selanjutnya ciphertext akan diubah kembali menjadi
plaintext dengan algoritma kriptografi LUC.
3.3.3 Pseudocode
Pseudocode atau kode semu adalah urutan baris algoritma seperti kode pemrograman
yang lebih sederhana untuk mempermudah pemahaman terhadap prinsip algoritma
tersebut. Adapun tahapan proses – proses pada sistem ini akan dideskripsikan kedalam
beberapa pseudocode berikut ini.
3.3.3.1 Pseudocode Proses Enkripsi
Urutan langkah – langkah pada proses enkripsi menggunakan algoritma kriptografi LUC
functi
on enkripsi
{initial state = plaintext final state = ciphertext} Kamus
input e {kunci enkripsi} input N
3.3.3.2 Pseudocode Proses Dekripsi
Langkah – langkah pada proses dekripsi menggunakan algoritma kriptografi LUC dapat
dilihat pada pseudocode berikut:
functi
on dekripsi
k plain(i)
3.3.3.3 Pseudocode Proses Penyisipan
Urutan langkah – langkah pada proses penyisipan dengan menggunakan metode
steganografi End of File dapat dilihat pada pseudocode berikut:
functi
on sisip
{initial state = coverimage final state = stegoimage} Kamus
tandaA [38 38 38] {kode ASCII untuk karakter “&&&” sebagai tanda awal
ci
eks [tandaA cipher tandaZ]
3.3.3.4 Pseudocode Proses Ekstr aksi
Langkah – langkah pada proses ekstraksi dengan menggunakan metode steganografi End
of File dapat dilihat pada pseudocode berikut:
functi
on ekstrak
{initial state = stegoimage final state = ciphertext} Kamus
while ((cip(1)≠38) and (cip(2)≠38) and (cip(3)≠38))
t t-1
3.3.4 Interface Sistem
Perancangan antarmuka pemakai (interface) bertujuan untuk memberikan
beberapa halaman yang dimiliki oleh sistem, diantaranya Halaman Utama, halaman
Key Generator, halaman Enkripsi/Penyisipan, halaman Ekstraksi/Dekripsi, halaman
About danhalaman Help.
3.3.4.1 Tampilan Halaman Utama
Ketika sistem dijalankan, maka akan muncul Halaman Utama dari sistem seperti yang
terlihat pada Gambar 3.12
Gambar 3.12 Rancangan Halaman Utama Sistem
Terdapat beberapa komponen pada Halaman Utama, yaitu :
1. Menu “Key Generator” yang akan menampilkan halaman untuk proses
pembangkitan kunci
2. Menu “Process” yang terdiri dari dua buah submenu, yaitu submenu
“Enkripsi/Penyisipan” dan submenu “Ekstraksi/Dekripsi”
3. Submenu “Enkripsi/Penyisipan” yang akan menampilkan halaman untuk
4. Submenu “Ekstraksi/Dekripsi” yang akan menampilkan halaman untuk proses
ekstraksi dan dekripsi pesan
5. Menu “About” yang akan menampilkan halaman yang berisi informasi tentang
sistem
6. Menu “Help” yang akan menampilkan halaman yang berisi tentang petunjuk
penggunaan sistem
7. Komponen Static Text sebagai nama sistem
8. Komponen Axes untuk menampilkan logo Universitas Sumatera Utara
9. Komponen Static Text yang menampilkan nama pembuat sistem
10. Komponen Static Text yang menampilkan informasi Universitas
3.3.4.2 Tampilan Menu Key Generator
Menu Key Generator merupakan menu untuk melakukan proses pembangkitkan
bilangan kunci yang akan digunakan pada proses enkripsi dan dekripsi. Rancangan
interface untuk menu Key Generator dapat dilihat pada Gambar 3.13.
Gambar 3.13 Rancangan Menu Key Generator
Terdapat beberapa komponen pada Menu Key Generator, yaitu :
1. Push Button “Halaman Utama” untuk kembali ke halaman utama
3. Komponen Edit Text untuk menampilkan bilangan prima kedua q
4. Push Button “Generate” untuk membangkitkan bilangan prima
5. Push Button “Save” untuk menyimpan kunci dalam file *txt
6. Komponen Edit Text untuk menampilkan hasil dari N
7. Komponen Edit Text untuk menampilkan hasil kunci publik e
8. Komponen Edit Text untuk menampilkan hasil kunci privat d
3.3.4.3 Tampilan Submenu Enkripsi/Penyisipan
Submenu Enkripsi/Penyisipan terdapat pada Menu Process. Submenu
Enkripsi/Penyisipan digunakan untuk melakukan proses enkripsi pesan/plaintext
menjadi ciphertext serta menyisipkan ciphertext kedalam sebuah citra cover berformat
*bmp. Citra yang telah disisipi ciphertext disebut citra stego. Rancangan submenu
Enkripsi/Penyisipan dapat dilihat pada Gambar 3.14