BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Untuk dapat memahami kebutuhan sistem dan gambaran tugas-tugas yang akan dikerjakan sistem, maka dilakukan analisis dan perancangan sistem. Dalam analisis dan perancang
sistem, akan dilakukan pemodelan rancang bangun sistem yang akan diimplementasikan dalam bentuk nyata.
3.1.1 Analisis Masalah
Diagram Ishikawa fishbone diagram biasanya digunakan untuk mengidentifikasi masalah yang ada pada sistem yang akan dirancang. Dengan diagram ishikawa kita dapat
mengindentifikasi, mengeksplorasi dan menggambarkan suatau masalah serta sebab dan akibat dari masalah tersebut dalam bentuk grafis. Diagram ini disebut juga diagram sebab-
akibat atapun diagram tulang ikan. Dengan mengindetifikasi masalah yang ada pada sistem, akan membantu dalam menganalisis persyaratan sistem yang akan dikembangkan sehingga
tujuan dari sistem dapat dicapai.
Masalah utama dari sistem yang akan dikembangkan pada skripsi ini adalah bagaimana mengamankan data atau informasi rahasia sehingga tidak jatuh ketangan yang
tidak berkepentingan. Selanjutnya masalah ini diuraikan kedalam 4 kategori yaitu : pengguna sistem atau program, implementasi kriptografi dan steganografi, ukuran pesan dan citra, serta
kunci.
Universitas Sumatera Utara
Dalam kategori pengguna sistem atau program, yang menjadi masalah adalah data atau informasi yang dimiliki bersifat rahasia, jadi apabila data atau informasi tersebut jatuh
ketangan yang tidak berkepentingan akan sangat merugikan pengguna. Pada kategori impelementasi kriptografi dan steganografi yang jadi masalah adalah hasil enkripsi pesan
sangat tergantung dari panjang bilangan prima yang dibangkitkan sehingga apabila bilangan prima yang dibangkitkan sangat besar maka ketika disisipkan kecitra kemungkinan citra tidak
dapat menampung panjangnya bit hasil enkripsi tersebut. Untuk kategori ukuran data atau informasi dan citra, yang jadi masalah adalah apabila ukuran data atau informasi besar
sedangkan ukuran citranya kecil, maka citra tidak dapat menampung pesan yang telah dienkripsi. Sedangkan untuk kategori kunci, penyebab masalah adalah apabila kunci yang
dibangkitkan tidak memenuhi syarat primitive root maka kemungkinan hasil dekripsinya berbeda dengan data sebenarnya besar. Dari semua masalah yang telah disebutkan diatas,
maka berikut akan dibuat diagram ishikawanya :
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem
Masalah utama ditunjukkan pada segi empat paling kanan diagram ishikawa bagian kepala, kategori ditunjukkan oleh segi empat yang terhubung ke sebuah garis tulang,
sedangkan sebab akibat ditunjukkan oleh tulang-tulang kecil yang diwakili oleh garis panah yang mengarah ke tulang-tulang kategori.
Universitas Sumatera Utara
3.1.2 Analisis Persyaratan Requirement Analysis
Dalam analisis persyatan sistem ada dua bagian penting yang harus dipenuhi, yaitu analisis persyaratan fungsional dan analisis persaratan non-fungsional.
3.1.2.1 Analisis Persyaratan Fungsional
Segala sesuatu yang harus dipenuhi sistem untuk mencapai tujuannya merupakan bagian dari persyaratan fungsional. Berikut adalah persyaratan fungsional sistem yang akan dirancang :
1. Sistem harus dapat mengenkripsi pesan menggunakan algoritma ElGamal, kemudian menyisipkannya ke citra dengan algoritma LSB. Untuk dapat memperoleh data atau
informasi asli, sistem harus dapat mengekstraksi data enkripsi dengan algoritma LSB, kemudian didekripsi dengan algoritma ElGamal.
2. Sistem harus dapat membangkitkan kunci, dimana user tidak harus mengerti tentang algoritma ElGamal.
3.1.2.2 Analisis Persyaratan Non-Fungsional
Persyaratan non-fungsional adalah persyaratan apa yang harus dilakukan sistem. Beberapa persyaratan non-fungsional yang harus dipenuhi oleh sistem yang dirancang adalah sebagai
berikut : 1. Sistem harus dapat mengubah karakter ke desimal dengan menggunakan tabel ascii dan
juga sebaliknya dengan benar, sehingga tidak ada perbedaan hasil dekripsi dengan data atau informasi asli.
2. Perubahan citra yang ditimbulkan oleh penyisipan data enkripsi harus kecil dan tidak tampak oleh mata manusia.
3. Waktu eksekusi untuk enkripsi dan penyisipan ciphertext ke citra harus kecil, dan juga sebaliknya waktu untuk ekstraksi dan dekripsi juga harus kecil.
Universitas Sumatera Utara
3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case
Untuk mendapatkan gambaran yang lebih jelas mengenai objek yang akan saling berinteraksi dengan sistem dan apa saja yang harus dilakukan oleh sistem agar sistem tersebut berfungsi
dengan baik dan sesuai dengan fungsinya, maka akan dilakukan pemodelan sistem. Pemodelan yang akan dikembangkan adalah diagram use case, dimana yang menjadi aktor
utamanya adalah pengguna. Pengguna dapat dikategorikan menjadu dua entitas yakni pengirim dan penerima.
Berdasarkan analisis kebutuhan sistem, beberapa hal yang harus dipenuhi oleh sistem, yaitu:
1. Sistem harus dapat membangkitkan kunci publik dan kunci privat yang akan digunakan dalam proses enkripsi dan dekripsi.
2. Sistem harus dapat melakukan enkripsi data atau informasi, kemudian sistem juga harus dapat menyisipkan chipertext ke file citra.
3. Sistem harus dapat mengekstraksi data atau informasi yang telah disisipkan kedalam citra, kemudian di dekripsi.
Berikut ini merupakan rancangan use case sistem yang akan dibuat sesuai dengan analisis kebutuhan yang telah dilakukan :
Gambar 3.2 Use Case Diagram Sistem yang Akan dikembangkan
Universitas Sumatera Utara
Dari use case diagram tampak bahwa penerima akan membangkitkan kunci publik dan kunci privat, kemudian kunci publik diberikan kepada siapa saja yang ingin mengirim
data atau informasi kepadanya. Sedangkan kunci privat hanya diketahui oleh si penerima sehingga orang yang tidak berkepentingan tidak mengetahui data atau informasi yang
dikirimkan oleh si pengirim. Setelah si pengirim mendapatkan kunci publik, kemudian pengirim akan melakukan proses enkripsi dan menyisipkan ciphertext ke dalam sebuah citra.
Setelah data dienkripsi dan disisipkan, maka si pengirim dapat mengirimkan citra yang berisi data atau infromasi tersebut melalui layanan email atau sejenisnya kepada penerima. Setelah
penerima menerima citra yang dikirimkan si pengirim, maka penerima akan mengekstraksi dan mendekripsikan data atau informasi yang ada pada citra tersebut. Berikut ini dokumentasi
naratif untuk use case diagram :
Tabel 3.1 Dokumentasi Naratif Program Enkripsi dan Steganografi.
Nama use case Program enkripsi dan steganografi
Aktor Penerima dan pengirim
Deskripsi Use case mendeskripsikan bagaimana proses yang terjadi antara
satu proses dengan proses yang lain dan antar proses dengan peringim atau penerima.
Pre-condition Data atau informasi yang dikirm berupa file txt
Typical course of event
Aksi aktor Respon sistem
Langkah-1: Penerima menjalankan program.
Langkah-3: Penerima akan memilih bangkitkan kunci dari
menu utama. Langkah-5 : Penerima akan
menyimpan kunci, kemudian membagikan kunci publik kepada
setiap orang yang ingin mengirim data atau informasi kepadanya.
Langkah-7: Penerima akan Langkah-2:
Sistem akan memuat modul-modul pada
menu utama. Langkah-4: Sistem kemudian
membangkitkan kunci publik dan privat.
Langkah-6:Pengirim kemudian menjalankan program dan
melakukan proses enkripsi dan menyisipkannya ke citra, dan
mengirimkannya ke penerima. 32
Universitas Sumatera Utara
mengekstraksi dan mendekripsi- kan data atau informasi yang ada
pada citra. Alternate course
Aksi aktor Respon sistem
- -
Post condition Data atau informasi yang dikirim si pengirim kepada penerima
sampai tanpa diketahui oleh orang lain.
Tabel diatas menjelaskan use case program enkripsi dan steganografi secara detail dimana terdapat actor, pre-condition, post-condition dan serta action dari pengguna dan
sistem. Dengan tabel diatas dapat diketahui bagaimana cara penggunaan program dan langkah-langkah dalam menggunakan program.
Activity diagram untuk use case program enkripsi dan steganografi adalah :
Gambar 3.3 Activity Diagram Program Enkripsi dan Steganografi
Universitas Sumatera Utara
Pada use case dapat dilihat terdapat beberapa aksi yang dilakukan oleh aktor, yaitu bangkitkan kunci, enkripsi dan penyisipan, ekstraksi dan dekripsi. Untuk menjelaskan ketiga
proses, akan digambarkan dengan diagram activity setiap proses. Untuk menjelaskan proses bangkitkan kunci, maka berikut akan dibuatkan dokumentasi naratif untuk use case
bangkitkan kunci :
Tabel 3.2 Dokumentasi Naratif Use Case Bangkitkan kunci
Nama use case Bangkitkan kunci
Aktor Penerima
Deskripsi Use case mendeskripsikan bagaimana penerima menggunakan
sistem untuk membangkitkan sebuah kunci privat dan pulik. Pre-condition
Penerima belum memiliki kunci privat dan publik
Typical course of event
Aksi aktor Respon sistem
Langkah 1: Penerima mengimputkan sebuah bilangan.
Langkah 3: Penerima menginputkan bilangan prima
tersebut sebagai kunci. Langkah 5: Penerima akan
menyimpan kunci yang telah dibangkitkan kedalam file txt.
Langkah 2: sistem mengecek apakah biangan tersebut prima
atau tidak. Jika prima maka bilangan tersebut akan dicetak
dan jika tidak, akan digenerate sebuah bilangan prima.
Langkah 4: Sistem akan membangkitkan kunci privat
dan publik Alternate course
Aksi aktor Respon sistem
- -
Post condition Kunci telah dibangkitkan dan telah disimpan
Tabel diatas menjelaskan usecase bangkitkan kunci secara detail dimana terdapat actor, pre-condition, post-condition dan serta action dari pengguna dan sistem. Dengan tabel
diatas dapat diketahui apa saja action yang dilakukan pengguna dan sistem pada saat membangkitkan kunci.
Universitas Sumatera Utara
Gambar 3.4 Activity Diagram Bangkitkan Kunci
Pada proses enkripsi dan penyisipan, maka hal pertama yang dilakukan sistem adalah memeriksa apakah data atau informasi yang akan disisipkan ada atau tidak, kemudian sistem
juga mengecek kunci publiknya dan citra yang akan disisipi. Apabila ada yang kosong, maka sistem akan memberikan pemberitahuan apa yang harus dilakukan, jika tidak ada yang
kosong, akan dilakukan proses enkripsi. Pada proses enkripsi, maka setiap karakter data atau informasi akan diubah ke bentuk desimal menggunakan kode ascii. Setelah diubah ke bentuk
desimal, akan dilakukan proses enkripsi dengan menggunakan algoritma ElGamal. Hasil enkripsi akan diubah ke bentuk binari, kemudian dihitung jumlah bitnya. Setelah itu, dihitung
pula jumlah bit yang dapat ditampung oleh citra, jika citra tidak dapat menampung bit hasil enkripsi, maka proses diberhentikan. Apabila bit-bit hasil enkripsi dapat ditampung oleh citra,
akan dilakukan proses penyisipan bit-bit tersebut ke citra. Setelah itu akan dicetak citra yang telah disisipi. Untuk lebih memahami proses enkripsi dan penyisipan, berikut akan dibuat
tabel dokumentasi naratif proses enkripsi dan penyisipan : 35
Universitas Sumatera Utara
Tabel 3.3 Dokumentasi Naratif Use Case Enkripsi.
Nama use case Enkripsi dan Penyisipan
Aktor Pengirim
Deskripsi Use case ini berfungsi untuk melakukan enkripsi dengan algoritma
ElGamal, kemudian hasil enkripsi disisipkan ke sebuah citra dengan algoritma LSB
Pre-condition Data atau informasi dalam bentuk text atau txt.
Typical course of event
Aksi aktor Respon sistem
Langkah 1: Pengirim menginput- kan data atau informasi, kunci
publik dan citra. Langkah 8: Pengirim menyimpan
citra yang berisi data atau informasi yang telah dienkripsi.
Langkah 2: Sistem mengecek apakah data, kunci dan citra
ada yang kosong atau tidak. Langkah 3 : Sistem melakukan
proses enkripsi. Langkah 4 : sistem mengecek
apakah citra dapat menampung hasil enkripsi.
Langkah 5: Sistem menyisip- kan ciphertext ke citra.
Langkah 7: Sistem mencetak citra yang telah disisipi dengan
ciphertext. Alternate course
Aksi aktor Respon sistem
- -
Post condition Data atau informasi telah dienkripsi dan disisipkan ke citra, dimana
perubahan citra sangat kecil yang tidak tampak oleh mata manusia.
Tabel diatas menjelaskan use case enkripsi dan penyisipan secara detail dimana terdapat actor, pre-condition, post-condition dan serta action dari pengguna dan sistem.
Dengan tabel diatas dapat diketahui action yang dilakukan pengguna dan proses yang terjadi pada saat proses enkripsi dan penyisipan.
Universitas Sumatera Utara
Gambar 3.5 Activity Diagram Proses Enkripsi dan Penyisipan
Pada proses ekstraksi dan dekripsi, penerima akan menginputkan citra yang diterima dari si pengirim dan kunci privatnya. Sistem akan mengecek apakah citra atau kunci privat,
ada yang kosong. Apabila ada yang kosong, akan ada pemberitahuan apa yang harus dilakukan dan apabila tidak ada maka sistem akan melakukan proses ekstraksi. Hasil ektraksi
akan didekripsi kemudiam hasilnya akan dicetak. Penerima menyimpan data atau informasi dalam bentuk file txt. Untuk lebih jelas, berikut akan dibuatkan dokumentasi naratif use case
ekstraksi dan dekripsi : 37
Universitas Sumatera Utara
Tabel 3.4 Dokumentasi Naratif Use Case Ektraksi dan Dekripsi
Nama use case Ekstraksi dan dekripsi
Aktor Penerima
Deskripsi Use case ini berfungsi untuk melakukan ekstraksi hasil enkripsi
dari citra, kemudian didekripsi untuk memperoleh data atau informasi yang disimpan pada citra.
Pre-condition Data atau informasi dalam bentuk yang dienkripsi dan disisipkan
dalam citra.
Typical course of event
Aksi aktor Respon sistem
Langkah 1: Penerima menginput- kan citra berisi data atau
informasi dan kunci privat. Langkah 6: Penerima akan
menyimpan hasil ektraksi dan dekripsi dalam bentuk file txt.
Langkah 2: Sistem memeriksa citra dan kunci privat, apakah
ada yang kosong. Langkah 3 : Sistem melakukan
proses ekstraksi. Langkah 4 : Sistem melakukan
proses dekripsi atas hasil ektraksi.
Langkah 5: Sistem akan mencetak hasil ekstraksi dan
dekripsi.
Alternate course Aksi aktor
Respon sistem -
- Post condition
Diperoleh data atau informasi yang ada pada citra yang kemudian disimpan dalam file txt.
Tabel diatas menjelaskan usecase ekstraksi dan dekripsi secara detail dimana terdapat actor, pre-condition, post-condition dan serta action dari pengguna dan sistem. Dengan tabel
diatas dapat diketahui action yang dilakukan pengguna dan proses-proses yang terjadi pada saat ekstraksi dan dekripsi.
Universitas Sumatera Utara
Activity diagram untuk use case proses ekstraksi dan dekripsi adalah sebagai berikut :
Gambar 3.6 Activity Diagram Ekstraksi dan Dekripsi
Berdasarkan dokumentasi naratif dan activity diagram dapat dilihat bahwa proses pertama yang dilakukan adalah ekstraksi data atau informasi yang disisipkan pada citra
dengan menggunakan algoritma LSB. Kemudian hasil ekstraksi didekripsikan menggunakan algoritma ElGamal. Pada proses dekripsi, kunci yang digunakan adalah kunci privat. Apabila
kunci privatnya salah maka proses dekripsinya tetap dikerjakan, akan tetapi hasil dekripsinya akan berbeda dengan data atau informasi aslinya.
Universitas Sumatera Utara
3.1.3 Analisis Proses Sistem
Pada bab sebelumnya telah dijelaskan bahwa pada progam akan ada 3 proses, yaitu bangkitkan kunci, enkripsi dan penyisipan, ekstraksi dan dekripsi. Tahap pertama yang
dilakukan adalah bangkitkan kunci, untuk menjelaskan proses yang terjadi serta hubungan antar proses, maka berikut akan digambarkan dengan sequence diagram :
Gambar 3.7 Sequence Diagram Bangkitkan kunci
Pada tahap bangkitkan kunci maka penerima menginputkan sebuah bilangan untuk dicek apakah prima atau tidak. Jika prima akan dicetak nilai yang diinputkan tersebut, jika
tidak prima akan dibangkitkan sebuah bilangan prima yang mendekati nilai yang diinputkan tersebut, kemudian dicetak. Setelah mendapat balasan dari sistem, penerima akan
menginputkan bilangan prima tersebut sebagai kunci. Kemudian sistem akan mencari primitive root dari kunci dan membangkitkan sebuah bilangan prima yang berbeda dari kunci.
Setelah itu sistem akan membangkitkan kunci privat dan publik, kemudian mencetaknya. 40
Universitas Sumatera Utara
Pada tahap kedua yang dilakukan adalah enkripsi dan penyisipan data atau informasi ke citra, untuk menjelaskan proses yang terjadi dan hubungan antar proses maka akan
digambarkan dengan sequence diagram berikut ini:
Gambar 3.8 Sequnce Diagram Enkripsi dan Penyisipan
Pada tahap enkripsi dan penyisipan, maka pengirim akan menginputkan kunci dan data atau informasi untuk melakukan proses enkripsi. Setelah sistem memperoleh data dan
kunci, sistem akan mengkonversi karakter data ke desimal. Kemudian akan dilakukan proses enkripsi, dimana nilai desimal data dan kunci akan dimasukkan kedalam 2 buah fungsi yang
merupakan fungsi algoritma ElGamal. Hasil dari kedua fungsi akan digabungkan dan hasil penggabungan tersebut merupakan ciphertext. Ciphertext akan digunakan sebagai input ke
proses penyisipan. 41
Universitas Sumatera Utara
Berikut merupakan pseudocode enkripsi ElGamal :
Untuk melakukan proses penyisipaan maka pengirim akan menginputkan sebuah citra. Setelah sistem memperoleh ciphertext dan citra, sistem akan membandingkan panjang binari
ciphertext dengan panjang byte citra dikurangi 3. Jika panjang binary ciphertext lebih besar maka proses akan dihentikan, sedangkan jika tidak maka setiap bit binari data akan disisipkan
ke setiap byte citra. Panjang dari binari data akan disisipkan ke 3 byte terakhir, kemudian byte citra akan dikonversi kembali ke citra. Berikut merupakan pseudocode penyisipan pesan
dengan algoritma LSB :
text - plaintext m - konversi karakter plaintext ke decimal dengan tabel ascii
key - �, �, �
�
bangkitkan b ,dimana nilai b p-1 for int i=0; i text.length ; i++ {
r [i] [0] = �
�
��� � r [i] [1] =
��
��
��� � result += r [i] [0] + r [i] [1] }
return result
byte citra - citra BMP String citrabinary - konversi citra ke binary
binary databinary - konversi pesan ke binary String ciphertext
if citra.lenth-3 databinary.length { } else {
String m - Konversi databinary.length ke binary byte n [i]- konversi m ke 3 byte n
for int i = citra.length-3 ;i=citra.length;i++{ citra [i] =n [i] }
for int i=0; i databinary.length; i++ { String newcitrabinary =
citrabinary.substring0,6+databinary.charAti citra [i]=byte.parsebyte newcitrabinary, 2 }
return citra
Universitas Sumatera Utara
Pada tahap ketiga yang dilakukan adalah proses ekstraksi dan dekripsi, untuk menjelaskan proses yang terjadi dan hubungan antar proses, maka akan digambarkan dengan sequence
diagram berikut ini :
Gambar 3.9 Sequnce Diagram Ekstraksi dan Penyisipan
Pada tahap ekstraksi dan penyisipan, penerima akan menginputkan citra agar data ciphertext diekstrak dari citra. Citra yang diinputkan akan dikonversi ke dalam byte dan 3
byte akhir akan dibaca untuk menentukan panjang binari data ciphertext. Setelah panjang binari data diketahui, baru sistem akan mengambil bit ke 8 dari setiap byte citra sebanyak
panjang binari data. Setelah itu, bit-bit tersebut akan dikonversi ke karakter yang merupakan ciphertext.
Universitas Sumatera Utara
Berikut merupakan pseudocode ekstraksi ciphertext dari citra :
Ciphertext hasil ekstraksi akan menjadi input untuk proses dekripsi. Untuk dapat mendeskripsi ciphertext dibutuhkan kunci privat, oleh karena itu maka penerima akan
menginputkan kunci privat. Setelah sistem memperoleh ciphertext dan kunci privat maka sistem akan melakukan proses dekripsi. Hasil dekripsi akan berupa bilangan desimal, oleh
karena itu sistem akan mengkonversi desimal ke karakter. Setelah proses konversi dilakukan, maka akan dihasilkan data atau informasi asli. Berikut merupakan pseudocode dekripsi
ciphertext :
byte citra - citra BMP String panjangcontainer
Int panjang string ciphertext
for int i=citra.length-3 ;i=citra.length ;i++ { panjangcontainer - ambil nilai citra[i],lalu konversi ke binary
panjang =String.ParseIntpanjangcontainer } for int i=7; i panjang; i+=8{
data +=container.charAti if data.length==8{
String cipher -konversi data ke karakter ciphertext +=cipher }
} return ciphertext
String cipher - ciphertext String key - p,a
String R,Result,Resultakhir for int i=0; i cipher.length; i++ {
R= �
� −�
≡ �
� �−1−�
��� � Result =
�
� −�
�� ��� � Resultakhir +=Result; }
Return Resultakhir
Universitas Sumatera Utara
3.2 Perancangan Sistem