Analisis Sistem Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

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

Dokumen yang terkait

Modifikasi Least Significant Bit(LSB) Menggunakan Persamaan Kuadrat Pada Kunci Steganografi

2 32 64

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

2 18 125

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 1 13

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 2

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 5

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 6 16

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 2

Implementasi Algoritma Massey-Omura dan Algoritma Least Significant Bit (LSB) Modifikasi Tempat Penyisipan Dengan Cover Image Bitmap Untuk Keamanan Data Text

1 2 11

Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

0 0 35

IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

0 0 11