Pada bagan diatas, dapat terlihat bahwa terdapat empat proses yang menjadi fungsi utama sistem yang terbagi atas dua bagian, yaitu dari sisi sender dan
receiver. Pada sisi sender, proses pertama melibatkan data inputan berupa plaintext dan publicKey. Proses ini menghasilkan suatu ciphertext.
Selanjutnya pada proses kedua yang melibatkan ciphertext dan citra Bitmap sebagai inputan yang menghasilkan sebuah stegano image. Pada sisi receiver,
proses pertama memiliki steganoimage sebagai data inputan dan menghasilkan sebuah ciphertext. Proses kedua melibatkan ciphertext dan
secretKey sebagai data inputan dan menghasilkan sebuah plaintext.
b. Analisis Kebutuhan Sistem
Aspek fungsional yang terdapat pada sistem meliputi adanya fungsi enkripsi, dekripsi, penyisipan, ekstraksi, pembangkitan kunci, serta bantuan untuk pemakaian
sistem. Aspek non fungsional meliputi adanya fungsi untuk pengecekan validitas setiap
nilai serta penyimpanan pasangan kunci.
3.2 Perancangan Sistem
Tahap perancangan sistem menggunakan UML yang mencakup diagram use case, sequence, class, dan activity. Tahap perancangan juga mencakup perancangan
flowchart dan antarmuka.
3.2.1 Diagram Use Case
Diagram use case menunjukkan interaksi aktor terhadap sistem. Pada diagram ini, terdapat dua actor yang berperan yaitu sender pengirim dan receiver penerima.
Use case yang terdapat pada sisi sender adalah encrypt dan embed. Hasil dari embed kemudian akan digunakan receiver untuk melakukan proses berikutnya.
Receiver berinteraksi dengan sistem dengan extract dan decrypt. Berikut ini adalah diagram use case sistem yang dibangun.
Universitas Sumatera Utara
System
SENDER RECEIVER
encrypt
Gambar 3.2 Diagram Use Case Sistem
3.2.2 Diagram Sequence
DiagramSequence menggambarkan proses atau langkah-langkah yang dilakukan oleh masing-masing aktor dalam menggunakan sistem. Sender terlebih dahulu
melakukan proses enkripsi dengan memasukkan data berupa plaintext dan publicKey, kemudian dilanjutkan dengan proses penyisipan dengan memasukkan
data berupa citra berformat Bitmap. Receiver yang telah memiliki stegano image akan melakukan proses ekstraksi yang menghasilkan ciphertext dan dilanjutkan
dengan proses dekripsi agar diperoleh plaintext. Berikut ini adalah diagram sequence untuksistem yang dibangun.
Universitas Sumatera Utara
SENDER
publicKey
Gambar 3.3 Diagram SequenceSistem
3.2.3 Diagram Class
Diagram class menggambarkan keadaan atribut dari masing-masing proses yang terdapat pada sistem, yaitu enkripsi, penyisipan, ekstraksi, dan dekripsi. Pada
proses enkripsi terdapat tiga atribut, yaitu publicKey, plaintext, dan Knapsack Merkle-Hellman. Pada proses penyisipan terdapat dua atribut, yaitu citra Bitmap
dan Least Significant Bit. Proses ekstraksi memiliki dua atribut, yaitu steganoImg dan Least Significant Bit. Proses terakhir, yaitu proses dekripsi, terdapat atribut
secretKey dan Knapsack Merkle-Hellman. Berikut ini adalah diagram class sistem, masing-masing memiliki relasi one to one, karena merupakan pasangan
proses yang tidak dapat dipisahkan dan hanya melibatkan objek yang sama untuk tiap prosesnya.
Universitas Sumatera Utara
Gambar 3.4 Diagram Class
3.2.4 Diagram Activity
Diagram activity menggambarkan segala aktivitas yang terdapat pada sistem. Terdapat dua aktivitas utama, yaitu aktivitas pada sender dengan melibatkan
proses enkripsi dan penyisipan, dan aktivitas pada receiver yang melibatkan proses ekstraksi dan dekripsi.
Gambar 3.5 Diagram Activity
Universitas Sumatera Utara
Setelah sender memilih sebuah citra Bitmap, akan terlihat jumlah maksimum karakter sesuai dengan ukuran citra. Selanjutnya sender menginputkan
plaintext dan publicKey agar proses enkripsi dapat berlangsung. Proses ini menghasilkan ciphertext dan ciphertext disisipkan kedalam citra BMP yang telah
dipilih sebelumnya agar dihasilkan sebuah stegano image.
Receiver memilih stegano image yang akan diekstrak. Proses ekstraksi menghasilkan ciphertext, dan kemudian akan mengalami proses dekripsi dengan
menggunakan secretKey yang merupakan pasangan dari publicKey yang dimiliki sender. Proses dekripsi akan menghasilkan plaintext.
3.2.5 Flowchart Sistem
Gambar 3.6 Flowchart Sistem
Universitas Sumatera Utara
Terdapat dua pilihan saat memulai program, yaitu apakah user akan melakukan penyisipan dan pengekstrakan pesan. Apabila tidak satupun dari kedua
pilihan dipilih oleh user maka program berhenti. Pilihan penyisipan akan membawa user pada proses enkripsi terlebih dahulu dengan menggunakan
algoritma Knapsack Merkle-Hellman yang akan menghasilkan ciphertext. Dilanjutkan dengan proses penyisipan dengan masukkan berupa ciphertext dan
citra Bitmap. Proses ini akan menghasilkan sebuah citra yang telah disisipkan ciphertext stegano image.
Pilihan selanjutnya yaitu apakah user ingin melakukan proses ekstraksi pesan. Pesan yang telah diekstrak dari stegano image akan didekripsi agar didapat
pesan asli karena dalam hal ini pesan yang disembunyikan dalam stegano image adalah berupa ciphertext.
3.2.5.1 Flowchart Algoritma Kriptografi Knapsack Merkle-Hellman
Sebelum dilakukan proses enkripsi, terlebih dahulu dibangkitkan kunci privat untuk menghasilkan kunci publik. Adapun langkah-langkahnya adalah sebagai
berikut.
1. Diinputkan nilai integer untuk suku pertama dan suku kedua kunci privat.
Diinputkan pula nilai pertambahan untuk membangkitkan kunci privat dan jumlah kunci privat.
2. Untuk mendapatkan suku ketiga dan suku berikutnya, dipastikan bahwa nilainya
harus lebih besar dari jumlah suku-suku sebelumnya. Nilai suku tersebut didapat dengan cara menjumlahkan semua suku sebelumnya dan menambahkannya dengan
nilai pertambahan yang telah diinputkan. Contohnya adalah:
Jumlah kunci = 5, suku pertama = 1, suku kedua = 3, nilai pertambahan = 2 Maka akan didapat kunci privat:
Suku pertama = 1
Universitas Sumatera Utara
Suku kedua = 3
Suku ketiga = 1+3+2 = 6
Suku keempat = 1+3+6+2 = 12 Suku kelima
= 1+3+6+12+2 = 24 Kunci privat
= 1 3 6 12 24
Gambar 3.7 Flowchart pembangkitan kunci privat
Setelah didapatkan kunci privat, selanjutnya akan diciptakan kunci publik dengan terlebih dahulu menginputkan nilai n dan m. Syaratnya adalah bahwa nilai
m harus lebih besar dari total kunci privat, dan nilai n lebih kecil dari nilaim.Kedua bilangan ini harus relatif prima, yaitu nilai faktor persekutuan
terbesarnya sama dengan satu. Kunci publik didapatkan dengan cara mengalikan masing-masing nilai kunci privat dengan n dan dimodulokan dengan m.
Universitas Sumatera Utara
Gambar 3.8 Flowchart kunci publik
Berikut ini adalah langkah-langkah proses enkripsi dan dekripsi dengan menggunakan algoritma kriptografi Knapsack Merkle-Hellman.
a. Proses enkripsi
1. Plaintext dikonversi terlebih dahulu ke bentuk biner.
2. Plaintext dibagi menjadi beberapa blok sesuai dengan ukuran kunci
publik. Dalam contoh diatas, ukuran kunci publik adalah lima. Maka setiap blok plaintext terdiri atas lima bit.
3. Setiap bit didalam blok dikalikan dengan elemen yang berkoresponden
pada kunci publik sehingga menghasilkan ciphertext.
Universitas Sumatera Utara
Gambar 3.9Flowchart proses enkripsi
b.
Proses dekripsi 1.
Ditentukan terlebih dahulu nilai n invers dengan rumus: 1+kmn, dengan nilai k dimulai dari nol.
2. Ditentukan nilai transformasi masing-masing ciphertext dengan rumus:
n inversciphertext mod m. 3.
Dengan menggunakan algoritma penyelesaian persoalan super-increasing knapsack akan didapatkan plaintext dalam bentuk biner.
Universitas Sumatera Utara
Gambar 3.10Flowchart proses dekripsi
Universitas Sumatera Utara
3.2.5.2 Flowchart Algoritma Steganografi Least Significant Bit
a. Proses embedding
1. Nilai warna citra untuk masing-masing piksel dikonversi kebentuk biner.
2. Masing-masing bit pesan rahasia disisipkan dengan cara memasukkannya pada
bit terakhir setiap piksel citra. 3.
Matriks yang berbentuk biner dikonversi menjadi sebuah citra Bitmap.
Gambar 3.11 Flowchart proses embedding
Universitas Sumatera Utara
b. Proses extracting
1.
Warna untuk masing-masing piksel dikonversi menjadi matriks bertipe integer
2.
Nilai warna untuk masing-masing piksel stegano image dikonversi kebentuk biner.
3.
Diambil bit terakhir masing-masing piksel citra secara berurutan. Deretan bit ini berupa bilangan biner.
Gambar 3.12 Flowchart proses extracting
Universitas Sumatera Utara
3.2.6Kamus Data
Keseluruhan proses yang terdapat pada perancangan sistem memiliki beberapa data yang merupakan data inputan ataupun data keluaran. Perincian dari data yang
digunakan dapat dilihat pada tabel berikut. Tabel 3.1 Kamus Data
Nama Tipe Data
Keterangan
Plaintext string
Pesan yang akan disisipkan ke citra
Ciphertext string
Pesan yang telah dienkripsi
Private key integer
Kunci untuk mengekstrak pesan dari stegano image
Public key integer
Kunci untuk penyisipan Stegano image
file Citra Bitmap yang telah
disisipkan pesan rahasia Image
file Citra asli Bitmap
m, n integer
Bagian dari secret key Secret Key
integer Kunci rahasia yang terdiri
atas private key dan nilai n dan m
3.2.7 Perancangan Antarmuka
Terdapat enam form pada perancangan antarmuka sistem, yaitu form menu utama, form penyisipan, form pengekstrakan, form about, form help danform
pembangkitan kunci.
Universitas Sumatera Utara
1. Form menu utama
Gambar 3.13 Tampilan Rancangan Form Menu Utama
Form ini akan muncul pertama sekali ketika user menjalankan sistem. Terdapat empat tombol yaitu: run program, help, about, dan exit. Apabila user
menekan tombol run program maka akan muncul kotak pilihan apakah ingin menyisipkan atau mengekstrak citra. Pilihan menyisipkan akan membawa user
pada form penyisipan dan pilihan pengekstrakan akan membawa user pada form ekstraksi. Tombol help akan mengarahkan user pada form bantuan, tombol about
akan mengarahkan user pada form yang berisi data yang berhubungan dengan sitem dan tombol exit membawa user keluar dari program.
Universitas Sumatera Utara
2. Form penyisipan
Gambar 3.14 Tampilan Rancangan Form penyisipan
Sebelum proses penyisipan dilakukan, user harus menginputkan citra berformat Bitmapsebagai cover object. Selain itu, user juga harus menginputkan kunci
publik dan pesan yang akan dienkripsi.
Universitas Sumatera Utara
3. Form pengekstrakan
Gambar 3.15 Tampilan Rancangan Form pengekstrakan
Form ini berfungsi untuk mengekstrak pesan dari sebuah stegano image. User harus menginputkan stegano image dan kunci rahasia agar dapat diperoleh
kembali pesan asli.
Universitas Sumatera Utara
4. Form pembangkit kunci
Gambar 3.16 Tampilan Rancangan Form pembangkit kunci
Form ini berfungsi sebagai pembangkit kunci privat dan kunci publik. Untuk menghasilkan suatu kunci publik, maka kunci privat harus ditentukan terlebih dahulu.
User harus menginputkan nilai n, m, dan suatu nilai pertambahan. 5.
Form about
Gambar 3.17 Tampilan Rancangan Form about
Form ini berisi data yang berhubungan dengan sistem, seperti nama sistem, tahun pembuatan dan lain sebagainya.
Universitas Sumatera Utara
6. Form help
Gambar 3.18 Tampilan Rancangan Form help
Form ini berisi panduan atau langkah-langkah untuk menggunakan sistem.
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
Tahap implementasi merupakan lanjutan dari tahap analisis dan perancangan sistem. Tools yang digunakan adalah Matlab R2007b, dan sistem berjalan pada
sistem operasi windows.
4.1 Tampilan Antarmuka Sistem