• Tidak ada hasil yang ditemukan

Implementasi Algoritma Kriptografi RC5 dan Metode Steganografi Least Significant Bit (LSB) Dalam Pengamanan File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Kriptografi RC5 dan Metode Steganografi Least Significant Bit (LSB) Dalam Pengamanan File Teks"

Copied!
83
0
0

Teks penuh

(1)

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 = ""

(2)

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

(3)

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

(4)

If PictureBox1.Image IsNot Nothing Then

If String.IsNullOrEmpty(password.Text) Then MsgBox("Password Harus Diisi!")

(5)

'================================================== 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)

(6)

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

(7)

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

(8)

'================================================== sudah N layer(plainbit.length) -> M pixel

z1 = (a1 * z1 + c1) Mod m1

Dim indexnow As Integer =

(9)
(10)

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

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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).

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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)

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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.

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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);

(42)

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

(43)

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

(44)

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 ;

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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 :

(52)

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

(53)
(54)

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

(55)

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

(56)

3 User menekan tombol

Hitu g pada halaman Hitung MSE dan PSNR

Sistem akan menampilkan nilai MSE dan PSNR

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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];

(62)

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 ;

(63)

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,

(64)

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

(65)

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

Gambar

Gambar 3.13 Pseudocode Enkripsi RC5
Gambar 3.16 Rancangan Interface Halaman Pengamanan
Gambar 3.17 Rancangan Interface Halaman Pengungkapan
Tabel 3.2 Keterangan Gambar Rancangan Interface Halaman Pengungkapan
+7

Referensi

Dokumen terkait

Puji syukur penulis panjatkan ke hadirat Allah SWT atas segala rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul ” Pengaruh Kinerja

Penelitian ini bertujuan untuk mendeskripsikan profil usaha Teh Gaharu di Desa Lubuk Pabrik Kecamatan Lubuk Besar Kabupaten Bangka Tengah, menganalisis kelayakan Teh

dengan sistem kebudayaan lain adalah simbol-simboldalam agama yang menyatakan. kepada kita bahwa terdapat sesuatu “yang benar - benar riil”, yang

Salah satunya teknologinya adalah metoda radar penembus tanah ( Ground Penetration Radar / GPR ) adalah suatu metode pendeteksian objek-objek di dalam tanah dengan menggunakan

Kajian Hukum Pertanggungjawaban Pidana terhadap Notaris dalam Menjalankan Jabatan Terkait Ketiadaan Sanksi Pidana pada Undang-Undang Nomor 30 Tahun 2004 tentang Jabatan

(Supplement 2.2.1-1) With the start signal, the robot moves to LA and attaches ʻdiscsʼ or ʻmagazines loaded with discsʼ according to Rule 2.4.1, then the robot leaves LA and works

[r]

Sehubungan dengan itu, saya menyambut baik penyelenggaraan Kontes Robot ABU Indonesia (KRAI), karena dalam KRAI setiap peserta harus mengeksplorasi kemampuannya