LISTING PROGRAM hextodec("9E3779B9") 'nilai magic untuk block size 32 bit
Dim round As Integer = 12 'jumlah round
Dim b_kecil As Integer = 16 'panjang password dalam byte/16 karakter Dim u As Integer = w / 8
Dim c As Integer = b_kecil / u Dim t As Integer = 2 * round + 2
Dim S As BigInteger() = New BigInteger(t) {} Dim L As BigInteger() = New BigInteger(c) {} Function bit_to_string(ByVal a As String) As String Dim total As Integer = 0
Function string_to_bit(ByVal input As String) As String Dim Result As String = ""
Function rotasikiri(ByVal input As Long, ByVal count As Integer, ByVal bit As Integer) As Long
Dim biner As String = desimal2biner(input, bit)
Dim binerrotasikiri As String = biner.Substring(count, biner.Length - count) + biner.Substring(0, count)
Return Convert.ToUInt64(binerrotasikiri, 2) End Function
Function rotasikanan(ByVal input As Long, ByVal count As Integer, ByVal bit As Integer) As Long
Dim biner As String = desimal2biner(input, bit)
Dim binerrotasikanan As String = biner.Substring(biner.Length - count, count) + biner.Substring(0, biner.Length - count)
Return Convert.ToUInt64(binerrotasikanan, 2) End Function
Function dectohex(ByVal dec As Long) As String Dim sHexValue As String = Hex$(dec)
Function hextodec(ByVal hex As String) As BigInteger Return Convert.ToInt64(hex, 16)
End Function
Function hextostring(ByVal hex As String) As String Dim sb As New StringBuilder
For x = 0 To hex.Length - 1 Step 2 Dim k As String = hex.Substring(x, 2)
sb.Append(System.Convert.ToChar(System.Convert.ToUInt32(k, 16))) Next
Return sb.ToString End Function
Function index2y(ByVal index As BigInteger, ByVal width As BigInteger)
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
If Not String.IsNullOrEmpty(OpenFileDialog1.FileName) Then Dim pathfile, ext, filename As String
filepath = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) filename = System.IO.Path.GetFileName(OpenFileDialog1.FileName) If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
If PictureBox1.Image IsNot Nothing Then
If String.IsNullOrEmpty(password.Text) Then MsgBox("Password Harus Diisi!")
'================================================== merandom sebanyak pixel kemudian dimasukkan ke array
listAwal.Add(i) 3) - 1 'Ini sudah N layer(plainbit.length) -> M pixel
z1 = (a1 * z1 + c1) Mod m1
Dim indexnow As Integer = Math.Floor((Double.Parse(z1.ToString()) / Double.Parse(m1.ToString())) * listAwal.Count)
Next - 1) & penanda.Substring(penanda.Length - i, 1)
img.SetPixel(panjang - i, lebar - 1, Color.FromArgb(Color.R, Color.G, Bin_To_Dec(change4)))
Next
Label9.Text = watch.Elapsed.TotalMilliseconds
filepath = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) filename = System.IO.Path.GetFileName(OpenFileDialog1.FileName) If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
If Not String.IsNullOrEmpty(OpenFileDialog1.FileName) Then PictureBox2.Image = Image.FromFile(OpenFileDialog1.FileName)
System.Windows.Forms.DialogResult.OK And (SaveFileDialog1.FileName.Length) > 0 Then
If String.IsNullOrEmpty(password2.Text) Then MsgBox("Password Belum Diisi")
ElseIf PictureBox2.Image Is Nothing Then MsgBox("stego image belum ada") Else
'================================================== sudah N layer(plainbit.length) -> M pixel
z1 = (a1 * z1 + c1) Mod m1
Dim indexnow As Integer =
A = (A - S(0)) And 4294967295
filepath = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) filename = System.IO.Path.GetFileName(OpenFileDialog1.FileName) If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
If Not String.IsNullOrEmpty(OpenFileDialog1.FileName) Then PictureBox4.Image = Image.FromFile(OpenFileDialog1.FileName)
filepath = System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) filename = System.IO.Path.GetFileName(OpenFileDialog1.FileName) If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
If PictureBox4.Image Is Nothing Or PictureBox5.Image Is Nothing Then MsgBox("Cover Image atau Stego Image Kosong")
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
Label13.Text = RichTextBox1.Text.Length End Sub
CURRICULUM VITAE
DATA PRIBADI
PENDIDIKAN FORMAL
1999 – 2000 Taman Kanak-kanak Budi Utomo
2000 – 2006 SD Budi Utomo
2006 – 2009 SMP Budi Utomo
2009 – 2012 SMA Sutomo 1
2012 – sedang berlangsung Universitas Sumatera Utara
Program Studi : S-1 Ilmu Komputer
KEMAMPUAN
Programming Visual Basic, Javascript, HTML
Database MySQL
Bahasa Indonesia, Inggris, Mandarin
Nama Lengkap Boris Mario
Jenis Kelamin 121401066
Tempat, Tanggal Lahir Medan, 20 Desember 1994
Agama Buddha
Alamat Jl. Pukat VIII No.47 Medan
No.HP 087868883989
E-mail bor.is.mario.chen@gmail.com
Alamat Orang Tua Jl. Pukat VIII No.47 Medan
Alatas, P. 2009. Implementasi Teknik Steganografi Dengan Metode LSB Pada CitraDigital. (Online) http://www.gunadarma.ac.id/library/articles/graduate/ computer-science/2009/Artikel_11104284.pdf (06 November 2015).
Cheddad, A, Condell. J, Curran. K, Kevitt. P.Mc, 2010. Digital Image Steganography : Survey and Analysis of Current Methods. Signal Processing 90(3):727-752.
Fairuzabadi, M & Rakhmat, B. 2010. Steganografi Menggunakan Metode Least Significant Bit Dengan Kombinasi Algoritma Kriptografi Vigenere dan RC4.
Jurnal Dinamika Informatika 5(2): 1-17.
Hastuti, K & Hidayat, E.Y. 2013. Analisis Steganografi Metode Least Significant Bit (LSB) dengan Penyisipan Sekuensial dan Acak Secara Kuantitatif dan Visual. Techno.COM 12(3): 157-167.
Handrizal & Zarlis, M. 2008 . Algortima & Pemrograman : Teori dan Praktik
dalam Pascal. Edisi Kedua. USU PRESS: Medan.
Hemachandran, K & Laskar , S.A. 2013. Steganography Based On Random Pixel Selection For Efficient Data Hiding. International Journal of Computer
Engineering and Technology (IJCET) 4(2): 31-44.
Kadir, A. & Susanto, A. 2013. Teori dan Aplikasi Pengolahan Citra. ANDI: Yogyakarta.
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting: Jakarta.
Mahmudy, W.F & Setiana. 2006. Steganografi Pada File Citra Bitmap 24 Bit Untuk Pengamanan Data Menggunakan Metode Least Significant Bit (LSB) Insertion. Kursor 2(2): 38-44.
Mollin, R.A. 2007. An Introduction to Cryptography. 2nd Edition. Taylor & Francis Group, LLC : United State of America.
Rhee, M.Y. 2003. Internet Security: Cryptographic Principles, Algorithms and
Protocols. Wiley : New York.
Saputra, A & Tinaliah, R. 2009. Perbandingan Enkripsi dan Dekripsi Password Menggunakan Metode Serpent dan RC5 Pada Aplikasi Perpustakaan Universitas Muhammadiyah Palembang. (Online) http://eprints.mdp.ac.id/ 794/1/JURNAL%202009250506%20ARIANSYAH%20SAPUTRA.pdf (13 November 2015).
Sari, S.P.,Sudirman, D.Z. & Winarmo. 2012,. Implementasi Steganografi Menggunakan Metode Least Significant Bit dan Kriptografi Advanced Encryption Standard. ULTIMATICS 4(1): 25-32.
Whitten, J.L., Bentley, L.D. & Dittman, K.C. 2004. Metode Desain & Analisis
3.1 Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah
sistem menjadi bagian-bagian komponen dengan tujuan mempelajari apakah
komponen-komponen tersebut bekerja dan berinteraksi sesuai dengan tujuan mereka.
Ada tiga fase analisis sistem yaitu : analisis masalah, analisis persyaratan dan analisis
proses. Analisis masalah bertujuan untuk memahami kelayakan masalah. Analisis
persyaratan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu
dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem.
3.1.1 Analisis Masalah
Permasalahan yang akan diselesaikan pada sistem ini adalah mengamankan file teks
dari pihak-pihak yang tidak berkepentingan dengan cara mengenkripsi file teks
terlebih dahulu kemudian disisipkan ke dalam suatu gambar. Pada penelitian ini, akan
diimplementasikan pengamanan file teks dengan menggunakan algoritma kriptografi
klasik RC5 dan metode steganografi Least Significant Bit (LSB).
Untuk mengidentifikasi masalah tersebut digunakan diagram Ishikawa
(fishbone diagram). Diagram Ishikawa merupakan suatu alat visual untuk
mengidentifikasi, mengeksplorasi, dan secara diagram menggambarkan semua
penyebab yang berhubungan dengan suatu permasalahan. Diagram ini menunjukkan
sebuah akibat dari permasalahan dengan berbagai penyebabnya (Whitten et al, 2004).
Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Berdasarkan Gambar 3.1, ada dua hal yang paling utama, yaitu bagian permasalahan
utama dan penyebabnya. Permasalahan yang dihadapi adalah untuk meningkatkan
keamanan file teks dengan kriptografi dan steganografi , dan penyebab munculnya
permasalahan adalah kecurigaan yang timbul terhadap ciphertext sebagai hasil dari
enkripsi. Solusi yang ditawarkan adalah menyisipkan ciphertext kedalam gambar
untuk menghilangkan kecurigaan tersebut.
3.1.2 Analisis Persyaratan
Analisis persyaratan terbagi atas dua bagian, yaitu persyaratan fungsional dan
persyaratan non fungsional. Persyaratan fungsional mendeskripsikan aktivitas yang
disediakan suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur,
karakteristik dan batasan lainnya (Whitten et al, 2004).
Manusia Metode
Material Sistem
Meningkatkan kemanan file teks dengan kriptografi dan steganografi
Pengirim dan penerima
File teks
(*.txt,*rtf, *docx, dan *doc)
Cover image
(*.bmp, *.jpeg,*. jpg dan *.png)
RC5 & LSB
Enkripsi & Sisip
Ciphertext
menimbulkan kecurigaan
Pihak ketiga
Data bersifat rahasia
3.1.2.1 Persyaratan Fungsional
Kebutuhan fungsional adalah menjelaskan proses-proses aktifitas yang dapat
dilakukan oleh sistem dalam melakukan pelayanan yang dilakukan sistem dan
kebutuhan yang harus dipenuhi oleh sistem, yaitu:
1. Fungsi Enkripsi dan Sisip
Pengguna dapat melakukan proses enkripsi file teks dari plaintext menjadi
ciphertext dengan memasukkan kunci enkripsi terlebih dahulu kemudian
menyisipkan ciphertext tersebut ke dalam cover image yang telah dipilih.
2. Fungsi Ekstrasi dan Dekripsi
Pengguna dapat melakukan proses ekstraksi stego image menjadi ciphertext
dan proses dekripsi ciphertext ke plaintext dengan memasukkan stego image
dan kunci dekripsi terlebih dahulu.
3.1.2.2 Persyaratan Non-fungsional
Persyaratan non-fungsional meliputi karakteristik berikut ini :
1. Performa
Sistem yang akan dibangun dapat menyembunyikan file teks dan
menampilkannya dalam bentuk stego image dan sistem juga dapat
mendapatkan kembali file teks awal dari stego image yang dimasukkan.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun memiliki tampilan yang user friendly sehingga
mudah dipahami dan digunakan oleh pengguna (user).
3. Hemat Biaya
Sistem yang akan dibangun tidak memerlukan perangkat tambahan atau
perangkat pendukung lainnya yang dapat mengeluarkan biaya yang besar.
4. Dokumentasi
Sistem yang akan dibangun dapat menyimpan citra digital hasil penyisipan dan
teks hasil dekripsi. Sistem juga dapat menampilkan waktu dari setiap proses
5. Kontrol
Sistem akan menampilkan pesan error untuk setiap input yang tidak sesuai
serta memiliki kontrol berupa enable dan disable, yaitu ketika citra atau file
teks belum diinput maka tombol fungsi pada sistem dalam keadaan tidak aktif
atau disable, dan setelah citra atau file teks sudah diinput maka tombol fungsi
tertentu akan aktif.
3.1.3 Analisis Proses
Sistem yang dibangun menggunakan bahasa pemrograman Visual Basic 2010.
Algoritma kriptografi yang digunakan untuk mengamankan file teks adalah RC5 yang
kemudian dikombinasikan dengan metode steganografi Least Significant Bit (LSB).
Kunci enkripsi ditentukan oleh pengguna sendiri. Kunci enkripsi berfungsi sebagai
kunci rahasia dalam melakukan proses enkripsi. Setelah dilalukan proses enkripsi
maka dilakukan proses penyisipan dengan mengacak pixel-pixel sesuai dengan
panjang ciphertext hasil enkripsi.
Dalam mendapatkan file teks awal dilakukan kebalikan dari proses sebelumnya yaitu
melakukan proses ektraksi citra terlebih dahulu kemudian dilakukan proses dekripsi
dengan kunci dekripsi yang sama seperti kunci enkripsi.
3.2 Perancangan Sistem
Pemodelan sistem dilakukan untuk menunjukkan dan mendeskripsikan gambaran dari
sistem yang akan dibangun. Pada penelitian ini dilakukan pemodelan dengan
menggunakan UML untuk mendesain serta merancang sistem.UML adalah bahasa
yang digunakan untuk memberikan penjelasan mengenai komponen-komponen untuk
membangun sistem dan interaksi antar komponen sistem. Model UML yang
digunakan dalam penelitian ini antara lain adalah use case diagram, activity diagram
3.2.1 Use Case Diagram
Use case merupakan gambaran dari interaksi antara sistem dan aktor yang berisi
requirement yang terdapat pada sistem tersebut. Adapun use case dari sistem yang
akan dibangun pada penelitian ini dapat dilihat pada Gambar 3.2.
Gambar 3.2 Use Case Diagram
3.2.2 Activity Diagram
Activity diagram merupakan salah satu jenis diagram pada UML yang memodelkan
proses-proses apa saja yang terjadi di dalam sistem. Berikut beberapa activity diagram
Gambar 3.3 Activity Diagram Pengamanan
Gambar 3.3 menggambarkan aktivitas pada sistem saat user melakukan proses
pengamanan. User memasukkan file teks, cover image, dan kunci rahasia, kemudian,
user menekan tombol mulai. Sistem akan melanjutkan dengan membaca kunci rahasia
yang telah diinputkan sebelumnya. Selanjutnya, sistem akan melakukan proses
enkripsi terhadap teks yang dimasukkan dengan algoritma RC5. Selanjutnya, sistem
melakukan proses penyisipan ciphertext hasil dari enkripsi RC5 ke dalam cover image
cover image yang telah dipilih oleh user dan sistem akan menampilkan tombol simpan
Sistem User
Cari File Teks OpenDialog dan Membaca File Teks ke Richtextbox
Cari Cover Image OpenDialog dan Membaca Cover Image ke Picturebox
Input Kunci Rahasia
Klik Mulai
Sistem Mengenkripsi Teks dengan Algoritma RC5
Sistem Menyisipkan Ciphertext ke Cover Image dengan LSB
Sistem Menampilkan Stego Image ke Picturebox
Klik Simpan Stego Image Sistem Menampilkan Lama Eksekusi dan Tombol Simpan Stego Image
stego image setelah proses selesai. Selanjutnya, stego image akan disimpan oleh
sistem jika user menekan tombol simpan stego image.
Gambar 3.4 Activity Diagram Pengungkapan
Gambar 3.4 menggambarkan aktivitas pada sistem saat user melakukan proses
pengungkapan. User memasukkan stego image dan kunci rahasia. Selanjutnya, Sistem
membaca kunci rahasia tersebut kemudian dilakukan proses ekstrasi dan proses
dekripsi secara berturut. Selanjutnya, sistem akan menampilkan tombol simpan teks
dan sistem akan menyimpan teks jika user menekan tombol simpan teks tersebut.
Sistem User
Cari Stego Image
Sistem Melakukan Dekripsi Ciphertext Hasil Ekstrasi dengan RC5 Sistem Membaca Kunci Rahasia
OpenDialog dan Membaca Stego Image ke PictureBox
Input Kunci Rahasia
Klik Mulai
Sistem Menampilkan teks hasil dekripsi ke Richtextbox Sistem Melakukan Ekstrasi Citra Dengan Metode LSB
Sistem Menampilkan Lama Eksekusi dan Tombol Simpan Teks Klik Simpan Teks
Gambar 3.5 Activity Diagram Hitung MSE dan PSNR
Gambar 3.5 menggambarkan aktivitas pada sistem saat user melakukan proses
perhitungan MSE dan PSNR. User memasukkan cover image dan stego image.
Kemudian, sistem akan melakukan pengecekan terhadap tinggi dan lebar kedua
gambar tersebut. Jika tinggi ataupun lebar kedua gambar tidak sama, maka user harus
memasukkan kembali gambar yang memliki tinggi dan lebar yang sama. Setelah
syarat tersebut terpenuhi, maka sistem akan menghitung nilai MSE dan PSNR dari
kedua gambar tersebut dan menampilkan kedua nilai tersebut.
3.2.3 Sequence Diagram
Sequence diagram merupakan salah satu jenis diagram pada UML yang
menggambarkan interaksi antar objek berdasarkan urutan waktu. Sequence diagram
dari sistem yang akan dibangun dapat dilihat pada Gambar 3.6.
Sistem User
Cari Cover Image
Klik Bandingkan Cari Stego Image
OpenDialog dan Menampilkan Cover Image ke Picturebox
Sistem Menghitung MSE dan PSNR Sistem Mengecek Tinggi dan Lebar Kedua Citra
Gambar 3.6 Sequence Diagram Sistem
Gambar 3.6 menunjukkan diagram sequence dari sistem yang akan dibangun. Pertama
sistem akan melakukan proses pengamanan. Pada proses pengamanan terdapat
beberapa hal yang harus diinput oleh user diantaranya adalah file teks, cover image,
dan kunci rahasia . Kemudian, user menekan tombol mulai untuk melakukan proses
enkripsi dan embedding dan sistem akan menampilkan stego image yang telah terisi
ciphertext didalamnya. Setelah user melakukan penyimpanan stego image dilanjutkan
ke proses pengungkapan. Pada proes pengungkapan, user harus memasukkan stego
image dan kunci rahasia. Setelah itu, user menekan tombol mulai dan sistem akan
melakukan proses ekstraksi dan dekripsi sehingga sistem akan menampilkan hasil
berupa teks awal dan user dapat melakukan penyimpanan teks tersebut. Pada proses
Hitung MSE dan PSNR Pengamanan Pengungkapan
Cari File Teks
Cari Cover Image Tampil Teks
Tampil Stego Image
Input Kunci Rahasia
Klik Mulai
Tampil Lama Eksekusi, Stego Image dan Button Simpan Stego image
Cari Stego Image Tampil Cover Image
Tampil Lama Eksekusi, Teks Awal dan Button Simpan Teks Input Kunci Rahasia
Klik Mulai
Input Cover Image Tampil Cover Image
Input Stego Image
Tampil Stego Image
Klik Bandingkan
Tampil Nilai MSE dan PSNR Klik Simpan Stego Image
Simpan Stego Image
Klik Simpan Teks
perhitungan MSE dan PSNR, user harus terlebih dahulu memasukkan cover image
dan stego image dengan lebar dan tinggi yang sama. Selanjutnya, sistem akan
melakukan proses perhitungan MSE dan PSNR. Selanjutnya, sistem akan
menampilkan nilai MSE dan PSNR kepada user.
3.2.4 Flowchart
Flowchart merupakan suatu bagan yang menggambarkan urutan suatu proses secara
rinci menggunakan simbol-simbol tertentu dan menggambarkan hubungan antara satu
proses dengan proses lainnya dengan menggunakan tanda panah. Selain itu, flowchart
juga memiliki fungsi memudahkan proses pengecekan terhadap sistem yang akan
dibuat.
3.2.4.1 Flowchart Sistem
Berikut merupakan flowchart dari sistem yang dibangun dapat dilihat pada Gambar
Pada gambar 3.7 terdapat tiga pilihan halaman yang dapat dipilih oleh user yaitu : Halaman Pengamanan, Pengungkapan dan Hitungan MSE dan PSNR. Halaman Pengamanan berfungsi untuk menenkripsikan dan menyisipkan file teks ke dalam
cover image. Halaman pengungkapan berfungsi untuk mendapatkan kembali teks awal
dengan mengekstraksi stego image dan mendekripsikan hasil ekstrasi tersebut. Halaman perhitungan MSE dan PSNR berfungsi untuk melakukan pengecekan terhadap kualitas citra sebelum dan sesudah disisipkan.
3.2.4.2 Flowchart Enkripsi RC5
Berikut merupakan flowchart enkripsi RC5 dari sistem yang dibangun dapat dilihat
pada Gambar 3.8.
Gambar 3.8 Flowchart Enkripsi RC5
Mulai tersimpan di K[b] ke dalam
3.2.4.3 Flowchart Dekripsi RC5
Berikut merupakan flowchart Dekripsi RC5 dari sistem yang dibangun dapat dilihat
pada Gambar 3.9.
Gambar 3.9 Flowchart Dekripsi RC5
Mulai tersimpan di K[b] ke dalam
3.2.4.4 Flowchart Embedding Teks ke Cover Image
Berikut merupakan flowchart Embedding Teks ke Cover Image dari sistem yang
dibangun dapat dilihat pada Gambar 3.10.
Gambar 3.10 Flowchart Embedding Teks Ke Cover Image
mulai
Input plain teks, Input cover
image
Ubah setiap karakter plain teks ke dalam susunan
bit
Bangkitkan Algoritma Random
Sisipkan setiap bit dari plain teks ke bit terakhir
pixel yang terpilih
Ubah kembali nilai pixel ke dalam warna RGB
Stego image
3.2.4.5 Flowchart Exctracting Teks dari Stego Image
Berikut merupakan flowchart Exctracting Teks dari Stego Image dari sistem yang
dibangun dapat dilihat pada Gambar 3.11.
Gambar 3.11 Flowchart Exctracting Teks Dari Stego Image
mulai
Input stego image
Ambil bit terakhir dari pixel yang
terpilih
Susun bit tersebut menjadi stream bit
Ubah stream bit menjadi karakter
selesai Bangkitkan algoritma random untuk memilih
pixel
3.2.4.6 Flowchart Perhitungan MSE dan PSNR
Berikut merupakan flowchart Perhitungan MSE dan PSNR dari sistem yang dibangun
dapat dilihat pada Gambar 3.12.
Gambar 3.12 Flowchart Perhitungan MSE dan PSNR
3.2.5 Pseudocode
Pseudocode merupakan kode yang mirip dengan instruksi kode program yang
sebenarnya. Pseudocode bertujuan untuk memudahkan manusia dalam pemahaman
dibandingkan menggunakan bahasa pemrograman yang umum digunakan. Pada
penelitian ini terdapat pseudocode yang mewakili fungsi pada sistem.
Mulai
Citra1, Citra2
If citra1.width= citra2.width and
citra1.height=citra2.height
Tidak
Hitung MSE dan PSNR
Nilai MSE dan PSNR
3.2.5.1 Pseudocode Enkripsi RC5
Gambar 3.13 Pseudocode Enkripsi RC5
3.2.5.2 Pseudocode Dekripsi RC5
Gambar 3.14 Pseudocode Dekripsi RC5
3.2.5.3 Pseudocode Hitung MSE dan PSNR
Gambar 3.15 Pseudocode Hitung MSE dan PSNR
3.3 Perancangan Antarmuka (Interface)
Perancangan antarmuka (interface) suatu sistem merupakan salah satu bagian yang
penting dalam membangun sebuah sistem. Antarmuka yang dirancang sebaiknya
memperhatikan faktor pengguna agar pengguna mudah dan nyaman saat
A A + S[0] B B + S[1] for i = 1 to r do:
A ((A ⊕B) <<< B) + S[2 * i] B ((B ⊕A) <<< A) + S[2 * i + 1] return A, B
for i = r down to 1 do:
B ((B - S[2 * i + 1]) >>> A) ⊕ A A ((A - S[2 * i]) >>> B) ⊕ B B B - S[1]
A A - S[0] return A, B
sum 0.0 mse 0.0
for x = 0 to picture1.width-1
for(y = 0; y < picture1.height; ++y){ color = picture1.GetPixel(i, j) color2 = picture2.GetPixel(i, j)
sum sum + Math.pow(color.R - color2.R, 2) _ + Math.pow(color.G - color2.G, 2) _ + Math.pow(Color.B - color2.B, 2)
menggunakan sistem tersebut. Adapun antarmuka yang akan dirancang pada sistem
ini adalah halaman Pengamanan, Pengungkapan, dan Hitung MSE dan PSNR.
3.3.1 Halaman Pengamanan
Halaman Pengamanan merupakan halaman yang pertama kali ditampilkan saat sistem
dijalankan. Pada halaman Pengamanan terdapat beberapa menu untuk mengakses
halaman lain. Rancangan halaman Pengamanan dapat dilihat pada Gambar 3.16
Gambar 3.16 Rancangan Interface Halaman Pengamanan
Tabel 3.1 Keterangan Gambar Rancangan Interface Halaman Pengamanan
No Keterangan
1 Menu “Pengamanan” untuk menampilkan halaman proses enkripsi dan
embedding
2 Menu “Pengungkapan” untuk menampilkan halaman proses extracting dan dekripsi
3 Menu “Hitung MSE dan PSNR” untuk menampilkan halaman perhitungan MSE dan PSNR
4 Button “Browse Teks” untuk membuka direktori dan memilih file teks yang akan dienkripsikan
5 Button “Browse Cover Image” untuk membuka direktori dan memilih citra yang
Pengamanan Pengungkapan Hitung MSE dan PSNR
Browse Teks Browse Cover
akan disisipi
6 Button “Save Stego Image” untuk memilih direktori tempat menyimpan citra hasil penyisipan
7 Textbox untuk memasukkan password atau kunci rahasia
8 Richtextbox untuk menampilkan isi dari file teks yang telah dipilih
9 Label untuk menampilkan lamanya proses enkripsi dan embedding
10 Label untuk menampilkan panjang teks
11 Button “Mulai” untuk melakukan proses enkripsi dan embedding
12 Picturebox untuk menampilkan citra yang telah dipilih
13 Label untuk panjang dari citra yang telah dipilih
14 Label untuk lebar dari citra yang telah dipilih
3.3.2 Halaman Pengungkapan
Halaman Pengungkapan merupakan halaman yang berfungsi untuk melakukan proses
pengungkapan teks awal dari citra yang telah disisipi. Pada halaman Pengungkapan
terdapat beberapa menu untuk mengakses halaman lain. Rancangan halaman
Pengungkapan dapat dilihat pada Gambar 3.17
Gambar 3.17 Rancangan Interface Halaman Pengungkapan Pengamanan Pengungkapan Hitung MSE dan PSNR
Browse Stego Image Simpan Teks
Password :
RC5 32/12/16, Steganografi LSB
Lama Eksekusi :
Mulai
Boris Mario
121401066
1 3
4
7 10
6
5
8
Tabel 3.2 Keterangan Gambar Rancangan Interface Halaman Pengungkapan
No Keterangan
1 Menu “Pengamanan” untuk menampilkan halaman proses enkripsi dan
embedding
2 Menu “Pengungkapan” untuk menampilkan halaman proses extracting dan dekripsi
3 Menu “Hitung MSE dan PSNR” untuk menampilkan halaman perhitungan MSE dan PSNR
4 Button “Browse Stego Image” untuk membuka direktori dan memilih citra yang akan diekstraksi dan didekripsikan
5 Button “Simpan Teks” untuk memilih direktori tempat penyimpanan teks
6 Textbox untuk memasukkan password atau kunci rahasia
7 Picturebox untuk menampilkan citra yang telah dipilih
8 Label untuk menampilkan lamanya proses ekstrasi dan dekripsi
9 Button “Mulai” untuk melakukan proses ekstrasi dan dekripsi
10 Richtextbox untuk menampilkan hasil proses dekripsi/teks awal
3.3.3 Halaman Hitung MSE dan PSNR
Halaman Hitung MSE dan PSNR merupakan halaman yang berfungsi untuk
melakukan perhitungan nilai MSE dan PSNR. Nilai MSE dan PSNR berfungsi untuk
menunjukkan kualitas atau perbedaan dari dua buah citra. Rancangan halaman Hitung
Gambar 3.18 Rancangan Interface Halaman Hitung MSE dan PSNR
Tabel 3.3 Keterangan Gambar Rancangan Interface Halaman Hitung MSE dan
PSNR
No Keterangan
1 Menu “Pengamanan” untuk menampilkan halaman proses enkripsi dan
embedding
2 Menu “Pengungkapan” untuk menampilkan halaman proses extracting dan dekripsi
3 Menu “Hitung MSE dan PSNR” untuk menampilkan halaman perhitungan MSE dan PSNR
4 Button “Browse Image” untuk membuka direktori dan memilih citra yang akan dibandingkan
5 Button “Hitung” untuk memulai proses perhitungan nilai MSE dan PSNR
6 Button “Browse Image” untuk membuka direktori dan memilih citra yang akan
7 Label untuk menampilkan nilai MSE
8 Picturebox untuk menampilkan citra yang telah dipilih
9 Label untuk menampilkan nilai PSNR
10 Picturebox untuk menampilkan citra yang telah dipilih
Pengamanan Pengungkapan Hitung MSE dan PSNR
Browse Image Browse Image
MSE :
PSNR :
Boris Mario
121401066
1 3
4
8
7
6
9
10 2
Hitung
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Setelah sistem dianalisis dan dirancang seperti yang telah diuraikan pada bab
sebelumnya, tahap selanjutnya adalah mengimplementasikan sistem tersebut ke dalam
bahasa pemrograman. Sistem ini dibangun dengan menggunakan Microsoft Visual
Basic 2010. Pada sistem ini terdapat tiga halaman, yaitu : halaman Pengamanan,
halaman Pengungkapan, halaman Hitung MSE dan PSNR.
4.1.1. Halaman Pengamanan
Halaman Pengamanan merupakan halaman yang pertama kali tampil pada saat sistem
dijalankan. Tampilan halaman Pengamanan ini dapat dilihat pada Gambar 4.1.
Pada Gambar 4.1 terdapat 2 menu yang dapat memanggil halaman yang lain, yaitu:
menu Pengungkapan, menu Hitung MSE dan PSNR. Pada halaman Pengamanan ini
juga terdapat informasi tentang algoritma dan metode yang digunakan, serta terdapat
juga nama dan nim dari penulis sendiri. Pada halaman ini user dapat melakukan
proses enkripsi dan embedding dengan terlebih dahulu memasukkan file teks, cover
image, dan kunci rahasia. Kemudian, user harus menekan tombol “Mulai” untuk
melakukan proses enkripsi dan embedding. Hasil dari proses embedding dapat dilihat
pada Picturebox di sebelah kanan.
4.1.2 Halaman Pengungkapan
Halaman Pengungkapan merupakan halaman yang ditampilkan jika user memilih
menu “Pengungkapan”. Tampilan dari halaman Pengungkapan ini dapat dilihat pada
Gambar 4.2.
Gambar 4.2 Halaman Pengungkapan
Gambar 4.1 menunjukkan bahwa user dapat melakukan proses ekstrasi dan dekripsi
dengan terlebih dahulu memasukkan stego image, dan kunci rahasia. Kemudian, user
Universitas Sumatera Utara
dari proses dapat dilihat pada Richtextbox di sebelah kanan. Pada halaman ini juga
akan ditampilkan lama eksekusi dari program.
4.1.3 Halaman Hitung MSE dan PSNR
Halaman Hitung MSE dan PSNR merupakan halaman yang ditampilkan jika
pengguna memilih menu “Hitung MSE dan PSNR”. Adapun tampilan dari halaman Hitung MSE dan PSNR ini dapat dilihat pada Gambar 4.3.
Gambar 4.3 Halaman Hitung MSE dan PSNR
Pada Gambar 4.3 user dapat melakukan pengecekan terhadap kualitas citra dengan
melakukan proses perhitungan MSE dan PSNR. User harus terlebih dahulu
memasukkan citra – citra yang akan dibandingkan. Kemudian sistem akan
menampilkan hasilnya setelah tombol “Hitung” ditekan.
4.1.4 Implementasi Algoritma RC5
Pada bagian ini akan dijelaskan proses-proses yang terjadi dalam
mengimplementasikan algoritma RC5 pada proses enkripsi dan dekripsi. Sebelum
expanding) yang meliputi : pembentukan array L, pembentukan array S, dan
pencampuran array L dan S.
4.1.4.1. Proses Perluasan Kunci (Key Expanding)
Parameter yang digunakan pada penelitian adalah RC5 32/12/16 dengan plaintext
“Kripto Stegano” dan kunci rahasia “Kriptografi”. Berikut adalah proses perluasan kunci dari algoritma RC5 :
Plaintext : “Kripto Stegano“
Kunci rahasia : “Kriptografi”
w (block size) = 32
r (round) = 12
b (key length) = 16
Keterangan :
w : ukuran blok enkripsi
r : jumlah putaran
b : panjang kunci rahasia
Plaintext dan kunci rahasia harus diubah ke dalam bentuk hexadecimal sehingga
bentuknya menjadi berikut ini :
Plaintext : 4B726970 746F2053 74656761 6E6F
Kunci rahasia : 4B726970 746F6772 616669
Dikarenakan algoritma yang digunakan penulis menggunakan nilai w sebesar 32 bit
dan nilai b sebesar 16 byte / 16 karakter maka plaintext dan kunci rahasia harus
di-padding agar sesuai dengan nilai yang telah ditetapkan. Berikut adalah bentuk
plaintext dan kunci rahasia sesudah di-padding :
Plaintext : 4B726970 746F2053 74656761 6E6F0000
Universitas Sumatera Utara 4.1.4.1.1. Proses Pembentukan Array L
Pembentukan Array L merupakan tahap pertama dalam perluasan kunci RC5. Dengan
menggunakan kunci rahasia yang telah di-padding maka berikutnya dilakukan proses
perhitungan untuk mendapatkan array L[0,1..c-1] dengan algoritma :
Berikut adalah hasil perhitungan untuk mencari array L[0,1..c-1] :
Dimana : b = 16, u = w/8 = 4 , c = b/u = 4.
L[i/4] = L[3] untuk i = 15, 14, 13 and 12.
L[3] = (L[3] <<< 8) + K[15] = 00 + 00 = 00
L[3] = (L[3] <<< 8) + K[14] = 0000 + 00 = 0000
L[3] = (L[3] <<< 8) + K[13] = 000000 + 00 = 000000
L[3] = (L[3] <<< 8) + K[12] = 00000000 + 00 = 00000000
L[i/4] = L[2] untuk i = 11, 10, 9 and 8.
L[2] = (L[2] <<< 8) + K[11] = 00 + 00 = 00
L[2] = (L[2] <<< 8) + K[10] = 0100 + 69 = 0069
L[2] = (L[2] <<< 8) + K[9] = 006900 + 66= 006966
L[2] = (L[2] <<< 8) + K[8] = 00696600 + 61 = 00696661
L[i/4] = L[1] untuk i = 7, 6, 5 and 4.
L[1] = (L[1] <<< 8) + K[7] = 00 + 72= 72
L[1] = (L[1] <<< 8) + K[6] = 7200 + 67 = 7267
L[1] = (L[1] <<< 8) + K[5] = 726700 + 6F = 72676F
L[1] = (L[1] <<< 8) + K[4] = 72676F00 + 74 = 72676F74
L[i/4] = L[0] for i = 3, 2, 1 and 0.
L[0] = (L[0] <<< 8) + K[3] = 00 + 70 = 70
L[0] = (L[0] <<< 8) + K[2] = 7000 + 69 = 7069
L[0] = (L[0] <<< 8) + K[1] = 706900 + 72 = 706972
L[0] = (L[0] <<< 8) + K[0] = 70697200 + 4B = 7069724B
c = b/u;
for i = b – 1 downto 0 do
Tabel 4.1 Hasil Perhitungan Manual Array L[0,1..c-1]
L[0] L[1] L[2] L[3]
7069724B 72676F74 00696661 00000000
4.1.4.1.2. Proses Pembentukan Array S
Setelah proses pembentukan array L, maka proses selanjutnya adalah proses
pembuatan array S. array S dibentuk dengan menggunakan algoritma sebagai berikut:
Dimana : t = 2*(r + 1) = 2 * (12+1) = 26, P32 = B7E15163, dan Q32 = 9E3779B9.
Nilai array S dapat dilihat pada tabel 4.2.
Tabel 4.2 Hasil Perhitungan Manual Array S[0,1..t-1]
n S[n]
1 B7E15163 + 9E3779B9 = 5618CB1C
2 5618CB1C + 9E3779B9 = F45044D5
3 F45044D5 + 9E3779B9 = 9287BE8E
4 9287BE8E + 9E3779B9 = 30BF3847
5 30BF3847 + 9E3779B9 = CEF6B200
6 CEF6B200 + 9E3779B9 = 6D2E2BB9
7 6D2E2BB9 + 9E3779B9 = 0B65A572
. . .
. . .
23 50A5C749 + 9E3779B9 = EEDD4102
24 EEDD4102 + 9E3779B9 = 8D14BABB
25 8D14BABB + 9E3779B9 = 2B4C3474
S[0] = P32;
For i = 1 to t-1 do
Universitas Sumatera Utara 4.1.4.1.3. Proses Pencampuran Array L dan S
Setelah dilakukan proses pembentukan array L dan array S, maka proses selanjutnya
adalah mencampurkan kedua array tersebut dengan algoritma sebagai berikut :
Hasil pencampuran array L dengan array S dapat dilihat pada tabel 4.3.
Tabel 4.3 Hasil Pencampuran Array L Dengan Array S
A = S(0) = B7E15163 + 00000000 + 00000000 <<< 3 = BF0A8B1D
B = L(0) = 7069724B + BF0A8B1D + 00000000 <<< BF0A8B1D = 05EE7FAD A = S(1) = 5618CB1C + BF0A8B1D + 05EE7FAD <<< 3 = D88EAF30
B = L(1) = 72676F74 + D88EAF30 + 05EE7FAD <<< DE7D2EDD = 2A1C93CA A = S(2) = F45044D5 + D88EAF30 + 2A1C93CA <<< 3 = B7DC3E7F
B = L(2) = 00696661 + B7DC3E7F + 2A1C93CA <<< E1F8D249 = C47155C4 A = S(3) = 9287BE8E + B7DC3E7F + C47155C4 <<< 3 = 76AA9688
B = L(3) = 00000000 + 76AA9688 + C47155C4 <<< 13B1BEC4C = BEC4C3B1 A = S(4) = 30BF3847 + 76AA9688 + BEC4C3B1 <<< 3 = 31749403
B = L(0) = 05EE7FAD + 31749403 + BEC4C3B1 <<< F03957B4 = 761F627D A = S(5) = CEF6B200 + 31749403 + 761F627D <<< 3 = B4554403
. . .
A = S(24) = 8C4706A2 + DF020659 + 95223DAC <<< 3 = 035A5538
B = L(0) = F268D47E + 035A5538 + 95223DAC <<< 987C92E4 = AE567628 A = S(25) = F0735579 + 035A5538 + AE567628 <<< 3 = 112106CD
B = L(1) = 4239B824 + 112106CD + AE567628 <<< BF777CF5 = A3203626
4.1.4.2. Proses Enkripsi
Setelah tahap perluasan kunci selesai dilakukan, maka tahap selanjutnya adalah proses
enkripsi. Proses enkripsi RC5 menggunakan algoritma sebagai berikut :
I =j = 0; A = B = 0;
do 3∗ max (t, c) times:
A = S[i] = (S[i] + A + B) <<< 3 B = L[j] = (L[j] + A + B) <<< (A + B); i = (i + 1) (mod t);
Plaintext : 4B726970 746F2053 74656761 6E6F0000
A B
Hasil dari enkripsi tahap 1 dapat dilihat pada tabel 4.4 berikut ini.
Tabel 4.4 Hasil Enkripsi Tahap 1
Round A B
0 DA679BFB D9198A23
1 9637A9A8 7E949194
2 4EC0DDA1 299ED426
3 9480BA56 A5AE1F76
4 85D3C225 693A5CD1
5 87E6EA1D 3F68CD4D
6 EE8E4741 71102837
7 B97D10EB AF86E0E9
8 FCDD5AC2 B8D000B5
9 27B29DB1 624CED95
10 E47A42C0 BEDA25AE
11 BEE07C1D 3F09518F
12 9A23962C BD9B411F
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F
A B
A = A + S[0]; B = B + S[1]; for i = 1 to r do
Universitas Sumatera Utara
Hasil dari enkripsi tahap 2 dapat dilihat pada tabel 4.5 berikut ini.
Tabel 4.5 Hasil Enkripsi Tahap 2
Round A B
0 4C9073AA D90FD131
1 BF7E4627 893C9178
2 2A289645 2B772370
3 723359DC CF131F85
4 E1D041B3 4B302887
5 BA31AA9F 1A0DF780
6 C9E08D4F 8AAAFE14
7 33E1765B C38A56E8
8 701E0A85 DDECA5BE
9 C446C7D4 4EE54976
10 88942BD5 8D1C4485
11 5612CF75 5D1D682A
12 41F7D164 DFCC9BAE
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F
41F7D164 DFCC9BAE
A B
Hasil dari enkripsi tahap 3 dapat dilihat pada tabel 4.6 berikut ini.
Tabel 4.6 Hasil Enkripsi Tahap 3
Round A B
0 6EC1CE39 D31969D0
1 2230D8C0 419AB755
3 C4E89D35 5B4F5FB3
4 51FC73BA 7DA97F1D
5 2F87B1DE 7618EA24
6 C399EFD5 8B79C43E
7 D0654CAE 67E4116D
8 30B5CD85 559CB512
9 BB27B0AB 00717E45
10 4ACB60C9 ACE08EEE
11 A08EDEFF 65392E61
12 8ECA3675 13BE8530
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F
41F7D164 DFCC9BAE
8ECA3675 13BE8530
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
4.1.4.3. Proses Dekripsi
Proses Dekripsi adalah proses untuk mengembalikan ciphertext menjadi plaintext.
Proses dekripsi RC5 menggunakan algoritma sebagai berikut :
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
A B
For i = r down to 1 do
B = B − S i + >>> A ⊕ A; A = A − S i >>> B ⊕ B; B = B − S ;
Universitas Sumatera Utara
Hasil dari dekripsi tahap 1 dapat dilihat pada tabel 4.7 berikut ini.
Tabel 4.7 Hasil Dekripsi Tahap 1
Round A B
12 A08EDEFF 65392E61
11 4ACB60C9 ACE08EEE
10 BB27B0AB 00717E45
9 30B5CD85 559CB512
8 D0654CAE 67E4116D
7 C399EFD5 8B79C43E
6 2F87B1DE 7618EA24
5 51FC73BA 7DA97F1D
4 C4E89D35 5B4F5FB3
3 BD9EC8BB 40D65FBB
2 2230D8C0 419AB755
1 6EC1CE39 D31969D0
0 DFCC9BAE 6E6F0000
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000
A B
Hasil dari dekripsi tahap 2 dapat dilihat pada tabel 4.8 berikut ini.
Tabel 4.8 Hasil Dekripsi Tahap 2
Round A B
12 5612CF75 5D1D682A
11 88942BD5 8D1C4485
9 701E0A85 DDECA5BE
8 33E1765B C38A56E8
7 C9E08D4F 8AAAFE14
6 BA31AA9F 1A0DF780
5 E1D041B3 4B302887
4 723359DC CF131F85
3 2A289645 2B772370
2 BF7E4627 893C9178
1 4C9073AA D90FD131
0 BD9B411F 74656761
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000
BD9B411F 74656761
A B
Hasil dari dekripsi tahap 3 dapat dilihat pada tabel 4.9 berikut ini.
Tabel 4.9 Hasil Dekripsi Tahap 3
Round A B
12 BEE07C1D 3F09518F
11 E47A42C0 BEDA25AE
10 27B29DB1 624CED95
9 FCDD5AC2 B8D000B5
8 B97D10EB AF86E0E9
7 EE8E4741 71102837
6 87E6EA1D 3F68CD4D
5 85D3C225 693A5CD1
Universitas Sumatera Utara
3 4EC0DDA1 299ED426
2 9637A9A8 7E949194
1 DA679BFB D9198A23
0 4B726970 746F2053
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000
BD9B411F 74656761
4B726970 746F2053
Plaintext : 4B726970 746F2053 74656761 6E6F0000
Dengan mengubah hexadecimal menjadi karakter maka didapatkan kembali teks awal
yaitu,
Plaintext : “Kripto Stegano”
4.1.5. Implementasi Metode LSB
Pada bagian ini akan dijelaskan proses menyisipkan ciphertext ke dalam cover image
kemudian proses mengungkapkan kembali ciphertext tersebut dari stego image. Cover
image yang akan digunakan berukuran 100 x 100 pixel. Berikut adalah cover image
yang akan digunakan.
Gambar 4.4 Cover Image 100 x 100 Pixel
4.1.5.1. Proses Penyisipan
Proses Penyisipan adalah proses menyisipkan ciphertext hasil dari enkripsi RC5 ke
dalam cover image dengan cara mengacak terlebih dahulu pixel yang akan disisipi
dengan algoritma random Linear Congruential Generator (LCG). Dengan mengubah
ciphertext yang telah didapatkan sebelumnya menjadi stream bit maka ciphertext
Ciphertext : 00111001 01000001 00110010 00110011 00111001 00110110
00110010 01000011 00110100 00110001 01000110 00110111 01000100 00110001
00110110 00110100 00111000 01000101 01000011 01000001 00110011 00110110
00110111 00110101 00110001 00110011 01000010 01000101 00111000 00110101
00110011 00110000
Setelah mengubah ciphertext menjadi stream bit, maka proses selanjutnya adalah
menyisipkan masing-masing bit tersebut ke dalam pixel yang telah diacak
menggunakan algoritma LCG ke dalam cover image. Hasil penyisipan ciphertext ke
dalam cover image dapat dilihat pada tabel 4.10.
Tabel 4.10 Hasil Penyisipan Ciphertext ke dalam Cover image
Posisi
pixel
Sebelum Disisipkan Bit yang
disisipkan
Untuk mengetahui berapa panjang bit yang harus diektraksi, maka dilakukan penanda
dengan memasukkan panjang ciphertext ke dalam pixel terakhir di layer B cover
image. Pada kasus ini, maka panjang ciphertext yang harus dimasukkan sebagai
Universitas Sumatera Utara Ciphertext : 9A23962C41F7D1648ECA367513BE8530
Panjang ciphertext : 32
Panjang ciphertext dalam bit : 00100000
Untuk mengetahui berapa panjang ciphertext dalam bit yang harus diambil maka
harus dipadding dengan nilai “0” sebagai pembatas dan nilai “1” sepanjang panjang ciphertext dalam bit, sehingga penandanya menjadi seperti berikut :
Penanda : 00100000011111111
Proses penyisipan penanda kedalam cover image layer B dapat dilihat pada tabel 4.11.
Tabel 4.11 Proses Penyisipan Penanda ke dalam Cover image
Posisi
pixel
Sebelum Disisipkan Bit yang
disisipkan
Sesudah Disisipkan
B B
(83,99) 0 0 0
(84,99) 0 0 0
(85,99) 0 1 1
(86,99) 0 0 0
(87,99) 0 0 0
(88,99) 0 0 0
(89,99) 0 0 0
(90,99) 0 0 0
(91,99) 0 0 0
(92,99) 0 1 1
(93,99) 0 1 1
(94,99) 0 1 1
(95,99) 0 1 1
(96,99) 0 1 1
(97,99) 0 1 1
(98,99) 0 1 1
4.1.5.2. Proses Ekstraksi
Proses Ekstraksi adalah proses pengambilan kembali nilai-nilai bit yang telah
disisipkan dan disatukan kembali menjadi suatu ciphertext. Terlebih dahulu, sistem
harus mengekstraksi penanda untuk mengetahui panjang ciphertext yang akan
diekstraksi nantinya. Kemudian, sistem dapat mengambil kembali ciphertext yang
telah disisipkan.. Berikut proses pengambilan penandanya :
1. Sistem membaca dari pixel terakhir layer B secara berurutan dan mengambil
bit terakhir dari pixel tersebut hingga sistem menemukan nilai “0”.
Contoh :
(99,99) mempunyai bit terakhir “1”
(98,99) mempunyai bit terakhir “1”
(97,99) mempunyai bit terakhir “1”
(96,99) mempunyai bit terakhir “1”
(95,99) mempunyai bit terakhir “1”
(94,99) mempunyai bit terakhir “1”
(93,99) mempunyai bit terakhir “1”
(92,99) mempunyai bit terakhir “1”
(91,99) mempunyai bit terakhir “0”
2. Ketika sistem sudah menemukan nilai “0” maka sistem dapat mengetahui
berapa panjang yang harus diambil selanjutnya sesuai dengan banyaknya nilai
“1” yang terambil . Pada contoh diatas sistem harus mengambil 8 bit lagi. (90,99) mempunyai bit terakhir “0”
(89,99) mempunyai bit terakhir “0”
(88,99) mempunyai bit terakhir “0”
(87,99) mempunyai bit terakhir “0”
(86,99) mempunyai bit terakhir “0”
(85,99) mempunyai bit terakhir “1”
(84,99) mempunyai bit terakhir “0”
(83,99) mempunyai bit terakhir “0”
3. Nilai-nilai tersebut akan digabung sehingga menjadi “00100000” sehingga
Universitas Sumatera Utara
Setelah dilakukan pengambilan penanda langkah selanjutnya adalah membangkitkan
algoritma random LCG untuk mendapatkan posisi pixel yang akan diekstraksi. Proses
ekstraksi ciphertext dapat pada tabel 4.12.
Tabel 4.12 Proses Ekstraksi Ciphertext
Posisi
Pada tabel 4.12, didapatkan ciphertext sebagai berikut :
Ciphertext : 00111001 01000001 00110010 00110011 00111001 00110110
00110010 01000011 00110100 00110001 01000110 00110111 01000100 00110001
00110110 00110100 00111000 01000101 01000011 01000001 00110011 00110110
00110111 00110101 00110001 00110011 01000010 01000101 00111000 00110101
00110011 00110000
Selanjutnya ciphertext tersebut diubah kedalam bentuk karakter sehingga menjadi
seperti berikut :
4.2. Pengujian
Pengujian ini bertujuan untuk menguji komponen sistem yang telah dirancang
sebelumnya dan untuk memastikan bahwa setiap elemen dari sistem telah berfungsi
sesuai dengan yang diharapkan. Dalam pengujian perangkat lunak ini menggunakan
metode Black Box yaitu yang berfokus pada persyaratan atau kebutuhan fungsional
perangkat lunak yang dibuat.
4.2.1. Pengujian Black Box
Pengujian black box berfokus pada persyaratan fungsional aplikasi. Pengujian ini
memungkinkan analisis sistem memperoleh kumpulan kondisi input yang akan
mengerjakan seluruh keperluan fungsional aplikasi. Pengujian Black Box akan
dilakukan pada masing-masing halaman yaitu pada halaman Pengamanan, halaman
Pengungkapan, dan halaman Hitung MSE dan PSNR.
4.2.1.1. Pengujian Halaman Pengamanan
Pengujian black box pada halaman pengamanan berguna untuk mengetahui apakah
aplikasi telah mampu mengamankan teks dan mampu mengatasi error-error akibat
kotak isian yang kosong dan lain sebagainya. Hasil pengujian black box pada halaman
pengamanan dapat dilihat pada tabel 4.13.
Tabel 4.13 Pengujian Halaman Pengamanan
No Skenario Pengujian
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
1 Input file teks berformat *.docx, *.doc, *.txt, dan *.rtf.
Sistem menampilkan isi file teks ke Richtextbox dan Panjang Teks
6 User
4.2.1.2. Pengujian Halaman Pengungkapan
Pengujian black box pada halaman pengungkapan berguna untuk mengetahui apakah
aplikasi telah mampu mengungkapkan dan mengembalikan ke teks awal, serta mampu
mengatasi error-error akibat kotak isian yang kosong dan lain sebagainya. Hasil
pengujian black box pada halaman Pengungkapan dapat dilihat pada tabel 4.14.
Tabel 4.14 Pengujian Halaman Pengungkapan
Universitas Sumatera Utara
4.2.1.3. Pengujian Halaman Hitung MSE dan PSNR
Pengujian black box pada halaman hitung MSE dan PSNR berguna untuk mengetahui
apakah aplikasi telah mampu memberikan nilai MSE dan PSNR dari dua citra (cover
image dan stego image) yang dibandingkan. Hasil pengujian black box pada halaman
hitung MSE dan PSNR dapat dilihat pada tabel 4.15.
Tabel 4.15 Pengujian Halaman Hitung MSE dan PSNR
3 User menekan tombol
Hitu g pada halaman Hitung MSE dan PSNR
Sistem akan menampilkan nilai MSE dan PSNR
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan analisis, perancangan, dan pengujian dari penelitian implementasi
algoritma kriptografi RC5 dan metode steganografi Least Significant Bit (LSB ) dalam
pengamanan file teks, maka diperoleh beberapa kesimpulan :
1. Kombinasi algoritma RC5 dan metode LSB mampu mengamankan file teks dan
memberikan proteksi ganda.
2. Berdasarkan nilai MSE dan PSNR dapat disimpulkan bahwa metode Least
Significant Bit (LSB) tidak menurunkan kualitas citra sama sekali dan citra
tetap terlihat sama.
5.2. Saran
Adapun saran-saran yang dapat dipertimbangkan untuk tahap pengembangan
penelitian ini antara lain :
1. Untuk pengembangan sistem selanjutnya dapat melakukan kompresi citra
karena besar ukuran dari stego image setelah dilakukan penyimpanan menjadi
lebih besar dari ukuran citra awal.
2. Untuk pengembangan sistem selanjutnya dapat mengombinasikan algoritma
RC5 dan algoritma klasik lainnya seperti Affine Cipher, Vigenere Cipher, dan
sebagainya.
3. Sistem dapat dikembangkan dengan mengganti media penampung ciphertext
menjadi audio ataupun video.
4. Untuk pengembangan selanjutnya dapat mengkonversi platform aplikasi dari
2.1. Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai
salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah
untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah,
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun
algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut
bukanlah algoritma yang baik (Handrizal & Zarlis, 2008).
2.2. Kriptografi
Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptós” artinya “secret” (rahasia), sedangkan “gráphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur. Definisi yang dipakai di dalam buku-buku
yang lama (sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan
seni untuk menjaga kerahasian pesan dengan cara menyandikannya ke dalam bentuk
yang tidak dapat dimengerti lagi maknanya (Munir, 2006). Kriptografi juga diartikan
sebagai ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci
enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci
dekripsi. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Proses
enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter
Pada kriptografi, pesan asli disebut plaintext dan pesan yang disamarkan
disebut ciphertext. Proses menyamarkan plaintext menjadi ciphertext disebut enkripsi.
Sedangkan proses untuk mengubah ciphertext kembali menjadi plaintext disebut
dekripsi (Mollin, 2007). Skema rangkaian proses enkripsi dan dekripsi ditunjukkan
secara umum pada Gambar 2.2.
Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Munir, 2006)
2.2.1. Algoritma RC5
Algoritma RC5 adalah algoritma block cipher yang dirancang oleh Profesor Ronald L.
Rivest dari MIT dan dipublikasikan pertama pada Desember 1994. RC5 memiliki
ukuran blok (32, 64, 128 bits), ukuran key (0 - 2040 bits) dan round (0 - 255).
Parameter pilihan yang paling disarankan adalah menggunakan 64 bits block size,
128-bit key dan 12 round.secara ringkas algoritma bekerja dengan penambahan
modulus 2w, melakukan XOR dan melakukan rotasi x kekiri dengan jumlah y bit.
Semakin besar round maka semakin besar tingkat keamanannya (Saputra & Tinaliah,
2009). Algoritma RC5 terdiri dari 3 komponen, yaitu:
1. Key expansion algorithm
2. Encryption algorithm
3. Decryption algorithm
2.2.1.1 Key Expansion Algorithm
Key Expansion Algorithm , yaitu algoritma yang digunakan untuk membangun tabel
kunci S (Rhee, 2003). Dalam Key expansion algorithm, terdapat 3 langkah yang harus
dilakukan yaitu:
Enkripsi Dekripsi
Plaintext Ciphertext Plaintext
a) Pembuatan array L[0,1..c-1]
Algoritma :
b) Pembuatan array S[0, 1..t-1]
Dalam membangun tabel array S diperlukan dua konstanta “ajaib” (magic
constants) Pw dan Qw yang telah ditentukan dengan rumus sebagai berikut :
Pw = Odd ((e − 2)2w)
Qw= Odd ((φ − 1)2w)
Dimana :
e = 2.71828 . . . (basis logaritma natural)
φ = (1 +√5)/2 = 1.61803 . . . (golden ratio)
Sedangkan fungsi Odd(x) menghasilkan nilai integer ganjil yang paling dekat
dengan x. Untuk nilai-nilai w yang diperbolehkan (16, 32 dan 64), nilai Pw
dan Qw adalah dapat dilihat pada table 2.1.
Tabel 2.1 Nilai Pw dan Qw
w=16 w=32 w=64
Pw B7E1 B7E15163 B7E151628AED2A6B
Qw 9E37 9E3779B9 9E3779B97F4A7C15
Algoritma : c = b/u;
for i = b – 1 downto 0 do
L[i/u] = ( L[i/u] <<< 8 ) + K[i];
S[0] = Pw;
For i = 1 to t-1 do
Universitas Sumatera Utara
c) Pencampuran array L dengan array S
Algoritma :
2.2.1.2. Encryption Algorithm
Encryption Algorithm, yaitu algoritma untuk melakukan enkripsi pada 1 blok plaintext
menghasilkan 1 blok ciphertext (Rhee, 2003).
Algoritma :
2.2.1.3. Decryption Algorithm
Decryption Algorithm ,yaitu algoritma untuk melakukan dekripsi pada 1 blok
ciphertext menghasilkan 1 blok plaintext (Rhee, 2003). i = j = 0;
A = B = 0;
do 3∗ max (t, c) times:
A = S[i] = (S[i] + A + B) <<< 3
B = L[j] = (L[j] + A + B) <<< (A + B);
i = (i + 1) (mod t);
j = (j + 1) (mod c).
A = A + S[0];
B = B + S[1];
for i = 1 to r do
A = ((A ⊕ B) <<< B) + S[2i];
Algoritma :
2.3. Steganografi
Steganografi (steganography) berasal dari bahasa Yunani yaitu Steganos yang
berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara
keseluruhan artinya adalah tulisan yang disembunyikan (Alatas, 2009). Ada dua
proses utama dalam steganografi yaitu penyisipan (embedding) dan penguraian
(extraction) pesan atau informasi dalam media cover. Embedding merupakan proses
menyisipkan pesan atau informasi ke dalam media cover, sedangkan extraction adalah
proses menguraikan pesan yang tersembunyi dalam gambar stego. Pesan yang akan
disembunyikan dalam sebuah gambar membutuhkan dua file. Pertama adalah gambar
asli yang belum dimodifikasi yang akan menangani pesan tersembunyi, yang disebut
gambar cover (cover image). File kedua adalah informasi pesan yang disembunyikan.
Suatu pesan dapat berupa plaintext, chipertext, gambar lain, atau apapun yang dapat
ditempelkan ke dalam bit stream. Ketika dikombinasikan, cover image dan pesan
yang ditempelkan membuat gambar stego (stego image) (Mahmudy & Setiana, 2006).
2.3.1. Metode Least Significant Bit (LSB)
Least Significant Bit (LSB) adalah teknik penyembunyian dengn menggunakan lokasi
bit terendah pada masing-masing pixel di dalam suatu citra. Pada susunan bit dalam
sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (Most Significant Bit atau
MSB) dan bit yang paling kurang berarti (Least Significant Bit atau LSB). Bit yang
cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai
byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya (Sari et al, 2012). For i = r down to 1 do
B = B − S i + >>> A ⊕ A;
A = A − S i >>> B ⊕ B;
B = B − S ;
Universitas Sumatera Utara
warna merah tersebut secara berarti. Mata manusia tidak dapat membedakan
perubahan kecil tersebut (Hastuti & Hidayat, 2013).
2.4. Citra
Citra merupakan salah satu bentuk multimedia yang memegang peranan sangat
penting sebagai bentuk informasi visual. Citra memiliki beberapa jenis format,
diantaranya yaitu JPEG, JPG, PNG dan lain-lain. Suatu citra dapat didefinisikan
sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat
spasial dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat
keabuan dari citra pada titik tersebut. Indeks baris dan kolom (x,y) dari sebuah pixel
dinyatakan dalam bilangan bulat (Kadir & Susanto, 2013).
2.5. Penelitian yang Relevan
Berikut ini beberapa penelitian yang terkait dengan algoritma kriptografi RC5 dan
metode steganografi Least Significant Bit (LSB) :
1. Alatas (2009) dalam jurnal yang berjudul Implementasi Teknik Steganografi
Dengan Metode LSB Pada Citra Digital. Menyatakan dalam penelitiannya
bahwa proses penyisipan pesan (embedding message) dimulai dengan memilih
gambar yang akan dijadikan cover image untuk menyisipkan dan
menyembunyikan pesan ke dalam gambar kemudian menentukan key file yang
akan digunakan sebagai password dalam proses extract dan menuliskan isi
pesan text yang akan disisipkan kedalam gambar.sedangkan pada proses
pendeteksian pesan (extraction message) dimulai dengan memilih file gambar
atau cover object yang akan di extract dan memasukkan key file, yang hasil
ekstraksi pesannya dapat disimpan.
2. Hemachandran & Laskar (2013) dalam jurnal yang berjudul Steganography
Based On Random Pixel Selection For Efficient Data Hiding, menyatakan
Pseudo Random Number Generator (PNRG) dapat digunakan untuk memilih
pixel secara random untuk disisipkan . Dalam mengekstraksi kembali pesan,
random dan mengambil bit terakhirnya kemudian digabung kembali dan diubah
menjadi karakter awal.
3. Saputra & Tinaliah (2009) dalam jurnal yang berjudul Perbandingan Enkripsi
dan Dekripsi Password menggunakan Metode Serpent dan RC5 Pada Aplikasi
Perpustakaan Universitas Muhammadiyah Palembang. Menyatakan bahwa
dalam algoritma RC5 terdapat 3 komponen, yaitu : Key Expansion Algorithm,
Encryption Algorithm, dan Decryption Algorithm. Key Expansion Algorithm
adalah algoritma yang digunakan untuk membangun tabel kunci S. Encryption
Algorithm adalah algoritma untuk melakukan enkripsi pada 1 blok plaintext
menghasilkan 1 blok ciphertext. Decryption Algorithm adalah algoritma untuk
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Pertukaran/transaksi data merupakan hal yang banyak dilakukan dalam kehidupan
sehari-hari di era teknologi yang sedang berkembang pesat. Informasi yang
dikirimkan ada yang bersifat rahasia maupun besifat pribadi. Karena itu data perlu
disandikan ataupun dirahasiakan agar tidak diketahui oleh pihak yang tidak
bertangggung jawab.
Keamanan data dan kerahasiaan data merupakan hal yang sangat penting dalam
proses pertukaran pesan ataupun informasi. Hal tersebut diperlukan untuk mengatasi
interupsi, penyadapan ataupun modifikasi pesan yang dilakukan oleh pihak-pihak
yang tidak bertanggung jawab. Tanpa adanya jaminan keamanan data dan kerahasiaan
data, orang lain dapat dengan mudah mendapatkan pesan/informasi melalui jaringan
internet.
Berbagai macam teknik keamanan telah dikembangkan untuk melindungi
kerahasiaan data supaya tidak digunakan oleh orang yang tidak berhak, salah satunya
adalah teknik Kriptografi. Kriptografi adalah suatu cabang ilmu yang berguna untuk
menjaga keamanan dan kerahasiaan data dengan cara mengubah bentuk awal data ke
bentuk yang tidak dapat dimengerti lagi maknanya (Fairuzabadi & Rakhmat, 2010).
Kriptografi memiliki dua unsur yang paling utama, yaitu Enkripsi (proses
mengubah plaintext menjadi ciphertext) dan Dekripsi (proses mengubah kembali
ciphertext menjadi plaintext). Dalam kedua proses tersebut membutuhkan kunci yang
berfungsi sebagai parameter untuk melakukan enkripsi dan dekripsi (Fairuzabadi &
Rakhmat, 2010).
Dalam pengamanan data, teknik kriptografi akan menghasilkan ciphertext yang
akan menimbulkan kecurigaan kepada pihak ketiga bahwa data yang dikirimkan
adalah data yang bersifat rahasia atau penting. Maka daripada itu diperlukan teknik