Perancangan Struktur Program Perancangan Struktur Data Perancangan Prosedural

69

BAB 4 PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK

4.1 Perancangan

Perancangan merupakan tahap ke dua dari siklus hidup pengembangan sistem perangkat lunak. Perancangan memiliki tujuan untuk menentukan kondisi akhir yang diharapkan dari perangkat lunak yang akan dibangun dan merumuskan cara yang harus dilakukan untuk memperoleh hasil tersebut. Pada perangkat lunak dengan algoritma GOST dan steganografi LSB, tahap perancangan yang dilakukan mencakup perancangan arsitektur, perancangan antar muka pemakai, perancangan data dan perancangan prosedural

4.1.1 Perancangan Struktur Program

Perancangan arsitektur merupakan perancangan awal untuk mengidentifikasi subsistem dan menetapkan kerangka kerja untuk kontrol dan komunikasinya. Perancangan arsitektur bertujuan untuk membangun struktur program yang modular dan merepresentasikan keterkaitan antar modul serta memadukan struktur program, struktur data, dan mendefenisikan antarmuka yang memungkinkan data dapat mengalir pada seluruh program. Universitas Sumatera Utara

4.1.2 Perancangan Antar Muka Pemakai

Antar muka pemakai user interface adalah aspek sistem komputer atau program yang dapat dilihat, didengar, atau dipersepsikan oleh pengguna manusia, dan perintah- perintah atau mekanisme yang digunakan pemakai untuk mengendalikan operasi dan memasukkan data. Berikut ini merupakan perancangan antar muka pemakai perangkat lunak GOST dan LSB.

4.1.2.1 Tampilan Program Utama

Tampilan program utama adalah tampilan yang paling awal muncul ketika program dijalankan. Pada tampilan utama ini terdapat tombol navigasi ke form program yang lain. Antarmuka program ini akan dibangun sesederhana mungkin dan se user-friendly mungkin, sehingga user mudah menggunakan perangkat lunak ini. Pada tampilan antarmuka program utama ini terdapat 3 tiga buah tombol, yaitu tombol kriptografi file, tombol kriptografi dan steganografi dan tombol about. Pada tombol kriptografi file, akan mengarah kepada form kriptografi file dengan menggunakan algoritma GOST, sedangkan tombol kriptografi steganografi akan mengarah kepada form enkripsi teks dan steganografi LSB. Tombol about akan mengarah ke form about. Universitas Sumatera Utara Gambar 4.1 Rancangan Antarmuka Program Utama

4.1.2.2 Tampilan Antarmuka Kriptografi File

Tampilan kriptografi file adalah tampilan yang muncul ketika tombol kriptografi file diklik. Pada tampilan ini terdapat tombol enkripsi dan dekripsi kriptografi file,serta kemudahan dalam mengakses file yang akan dienkripsi maupun dekripsi. Kripto File Browse Drive Direktori File Tree File List berdasarkan direktori Enkripsi Dekripsi Pesan Gambar 4.2 Rancangan Antarmuka Kriptografi File Universitas Sumatera Utara Pada saat user telah memilih file mana yang akan dienkripsi atau didekripsi, akan muncul form untuk memasukkan key atau kunci. Key Masukkan Key : Verifikasi Key : OK Batal Gambar 4.3 Rancangan Antarmuka PassInteger Kriptografi File Setelah passInteger dimasukkan dan berhasil diverifikasi, proses selanjutnya adalah proses enkripsi atau dekripsi algortima GOST pada file. File asli yang dienkripsi akan dihapus atau ditimpa dengan file hasil proses enkripsi, begitu sebaliknya.

4.1.2.3 Tampilan Antarmuka Kriptografi dan Steganografi

Pada tampilan antarmuka kriptografi dan steganografi ini terdapat 2 dua buah tombol navigasi, yaitu tombol tulis pesan dan baca pesan. Tombol tulis pesan berfungsi untuk menghubungkan ke form tulis pesan kriptografi dan steganografi, sedangkan tombol baca pesan untuk menghubungkan ke form baca pesan kriptografi dan steganografi. Universitas Sumatera Utara Kripto Teks Steganografi Tulis Pesan Baca Pesan Gambar 4.4 Rancangan Antarmuka Kripto Teks Steganografi Pada saat user mengklik tulis pesan akan muncul form tulis pesan kriptografi dan steganografi. Pada form tulis pesan terdapat beberapa tombol, di antaranya yaitu tombol new, open, save, tulis pesan, cek gambar. Tulis Pesan Kripto Teks Steganografi Tulis Pesan Text Box New Open Save Tulis Pesan Cek Gambar Image Preview Karakter Maksimal : Karakter Tersisa : Pesan Terenkripsi Text Box Gambar 4.5 Rancangan Antarmuka Tulis Pesan Kripto Teks Steganografi Universitas Sumatera Utara Pada form tulis pesan ini tombol open berfungsi untuk membuka atau mem-browse gambar bitmap yang akan dijadikan media carrier. Sedangkan tombol save berfungsi menyimpan gambar yang telah tersisipi teks. Tombol new berfungsi untuk mengosongkan form. Tombol tulis pesan berfungsi untuk menulis pesan ke gambar. Sedangkan cek pesan untuk memeriksa gambar apakah sudah tersisipi atau belum. Karakter maksimal adalah informasi jumlah karakter maksimal yang akan disisipi dan karakter tersisa adalah karakter yang tersisa dari teks yang sudah ditulis. Pada saat user mengklik tombol baca pesan, akan muncul form baca pesan kriptografi steganografi. Pada form ini terdapat tombol new, open, save, cek gambar, baca pesan. Rancangan tampilan antarmukanya adalah sebagai berikut: Baca Pesan Kripto Teks Steganografi Hasil Baca Pesan Text Box New Open Save Baca Pesan Cek Gambar Image Preview Karakter Maksimal : Karakter Tersisa : Hasil Baca Pesan Terenkripsi Text Box Gambar 4.6 Rancangan Antarmuka Baca Pesan Kripto Teks dan Steganografi Universitas Sumatera Utara Pada form baca pesan ini tombol open berfungsi untuk membuka atau mem-browse gambar bitmap yang akan dijadikan media carrier. Sedangkan tombol save berfungsi menyimpan gambar yang sudah diambil teksnya. Tombol new berfungsi untuk mengosongkan form. Tombol baca pesan berfungsi untuk membaca pesan dari gambar. Sedangkan cek pesan untuk memeriksa gambar apakah sudah tersisipi atau belum. Karakter maksimal adalah informasi jumlah karakter maksimal yang akan disisipi dan karakter tersisa adalah karakter yang tersisa dari teks yang sudah ditulis.

4.1.3 Perancangan Struktur Data

Perancangan struktur data merupakan salah satu bagian proses dari perancangan perangkat lunak. Struktur data merupakan representasi data yang sebenarnya dalam bentuk model programsimbol. Struktur data juga merupakan kumpulan elemen – elemen atau simbol yang membantu dalam pengidentifikasian setiap field ataufile di dalam sistem. Berikut ini struktur data pada dari perangkat lunak yang akan dibangun. Universitas Sumatera Utara Struktur Data: Plainteks, Cipherteks, Key_hashing, Key : Char Pesan_enkripsi_lsb, Pesan_dekripsi_lsb : Char K : array[0..7] of Integer W : array[0..255] of Integer L, R, Cipher S-Box, Cipher kanan Mod, Cipher_CLS : Integer Key_padding, Key_tambah , f , k : Integer Jumlah_karakter_pesan, jumlah_pixel : integer Pixel_red, pixel_green, pixel_blue, i : integer Cipher, red, green, blue : Integer

4.1.4 Perancangan Prosedural

Tahapan selanjutnya dalam perancangan perangkat lunak adalah tahapan design procedural atau detail algoritma. Tahapan ini disajikan dalam bentuk presedure dan flowchart. Hal ini dilakukan untuk mempermudah dalam pengkodean yang akan dilakukan. Universitas Sumatera Utara Berikut ini tahapan prosedur dan flowchart algoritma SHA-1, GOST dan Steganografi LSB: Prosedur 1. Proses Hashing SHA-1: { Input : Key. } { Proses : Mengtransformasikan key ke dalam bentuk message digest 160 bit menggunakan algoritma SHA-1. } { Output : Key_hashing message digest 160 bit . } Kamus Data: Key : Char; A, B, C, D, E : Integer; a ,b, c, d, e : Integer; W : array[0..255] of Integer; f , k : Integer; blok : array[0..255] of Integer; message_digest : Char; I,j : integer; temp : Integer; Algoritma SHA-1: Prosedur inisialisasi begin Universitas Sumatera Utara Key ← input key; A ← 0x67452301 ; B ← 0xEFCDAB89 ; C ← 0x98BADCFE; D ← 0x10325476 ; E ← 0xC3D2E1F0 ; End; Prosedur append begin Key ← key + bit „1‟; While Key = 448 Key ← key + bit „0‟; Key ← key + 64 bit key_input; End; Prosedur ekspansi_blok Begin While lengthkey512 Blok[i] ← key[kelipatan 512] ; For i:=0 to nblok do Begin W[0- 15] ← blok[i]; For j:= 16 to 79 do W[j] = W[j-3] xor W[j-8] xor W[j-14] xor W[j-16] 1; Universitas Sumatera Utara End; End; Prosedur proses_utama Begin a ← A; b ← B; c ← C; d ← D; e ← E; for i:= 0 to 79 do begin if 0 ≤ i ≤ 19 then begin f = b and c or not b and d; k = 0x5A827999; end; if 20 ≤ i ≤ 39 then begin f = b xor c xor d; k = 0x6ED9EBA1; end; if 40 ≤ i ≤ 59 then begin f = b and c or b and d or c and d; Universitas Sumatera Utara k = 0x8F1BBCDC; end; if 60 ≤ i ≤ 79 then begin f = b xor c xor d; k = 0xCA62C1D6; end; temp = a 5 + f + e + k + W[i]; e = d; d = c; c = b 30; b = a; a = temp; end; A = A + a; B = B + b; C = C + c; D = D + d; E = E + e; end; Prosedur message_digest Begin Message_digest ← A + B + C + D + E; End; Universitas Sumatera Utara Prosedur ini dapat dilihat juga pada flowchart berikut ini. Berikut ini flowchart algoritma dari fungsi hash SHA-1: Mulai Key Proses Inisialisasi Buffer Proses Penambahan Bit Pengganjal Proses penambahan dengan panjang bit semula Proses Pembagian Pesan kedalam blok berukuran 512 bit Proses ekspansi 16 buah sub-blok 32- bit W 0-15 Proses fungsi f dan k ≤ i ≤ 19 20 ≤ i ≤ 39 40 ≤ i ≤ 59 60 ≤ i ≤ 79 f = b and c or not b and d k = 0x5A827999 f = b xor c xor d k = 0x5A827999 f = b and c or b and d or c and d k = 0x8F1BBCDC f = b xor c xor d k = 0xCA62C1D6 No No No No Yes Yes Yes Yes A + B + C + D + E Message Digest Selesai 80 kali putaran, i Gambar 4.8 Flowchart Fungsi Hash SHA-1 Universitas Sumatera Utara Prosedur selanjutnya adalah prosedur proses enkripsi algoritma GOST. Pada prosedur ini akan mempermudah langkah dalam pengkodean nantinya. Berikut ini adalah prosedur enkripsi algoritma GOST: Prosedur 2. Proses Enkripsi Algoritma GOST { Input : Plainteks, key.} { Proses : Proses enkripsi data menggunakan Algoritma GOST. { Output : Cipherteks . } Kamus Data: Plainteks : Char; Key : Char; S-Box : array[0..7,0..15] of Integer = 4, 10, 9, 2, 13, 8, 0, 14, 6, 11, 1, 12, 7, 15, 5, 3, 14, 11, 4, 12, 6, 13, 15, 10, 2, 3, 8, 1, 0, 7, 5, 9, 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11, 7, 13, 10, 1, 0, 8, 9, 15, 14, 4, 6, 12, 11, 2, 5, 3, 6, 12, 7, 1, 5, 15, 13, 8, 4, 10, 9, 14, 0, 3, 11, 2, 4, 11, 10, 0, 7, 2, 1, 13, 3, 6, 8, 5, 9, 12, 15, 14, 13, 11, 4, 1, 3, 15, 5, 9, 0, 10, 14, 7, 6, 8, 2, 12, 1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12 ; K : array[0..7] of Integer; L,R : Integer; Cipherteks : Char; Universitas Sumatera Utara Algoritma GOST: 1. Input plainteks. 2. Input key. 3. Key diproses pada fungsi hash SHA-1 menjadi key_hashing 4. Ubah key_hashing menjadi data binary. 5. Bagi menjadi 8 bagian dan dimasukkan ke dalam K0 – K7 yang masing- masing 32 bit. 6. Ubah plainteks menjadi data binary. 7. Pembagian cipher kanan dan cipher kiri 32 bit. 8. Lakukan operasi modulo 2 32 terhadap cipher kanan dan K0 – K7. a. Jika putaran 24 maka key = K7 – K0. 9. Substitusi cipher kanan ke dalam 8 S-Box S0 – S7 yang masing-masing 4 bit. 10. Jumlahkan hasil subtitusi dari 8 S-Box menjadi 32 bit. Cipher kanan = S- Box[0..7]. 11. Dilakukan pergeseran sebanyak 11 bit ke kiri. Cipher kanan = Circular Left Shift Cipher kanan 11 bit. 12. Operasi XoR Cipher kanan CLS dengan Cipher kiri. 13. Cipher kiri = Cipher kanan dan Cipher kanan = Cipher kiri. 14. Ulangi dari proses 7 sebanyak 32 kali putaran. 15. Jumlahkan Cipher kanan dan Cipher kiri. 16. Cipherteks = Hasil penjumlahan Cipher kanan dan L. Universitas Sumatera Utara Dari prosedur proses enkripsi dekripsi algoritma GOST sebelumnya dapat dilihat juga aliran proses pada flowchart berikut ini: Mulai Plainteks Key Cipher L Subtitusi sBox S0 – S7 Circular Left Shift XOR Cipher R CLS SHA-1 Bit Padding 256 bit Pembentukan Key K0 – K7 Cipher R + K mod 2 32 Cipher R Mod Cipher R Cipher L Cipher R Chiper L Cipher R Cipherteks L + R Selesai Cipher R Gambar 4.9 Flowchart GOST Hasil proses enkripsi data algoritma GOST adalah cipherteks. Untuk mengetahui pesan asli, terlebih dahulu cipherteks harus ditansformasikan kembali menjadi plainteks. Pada teorinya proses dekripsi dilakukan dengan cara membalikkan proses Universitas Sumatera Utara yang terjadi pada proses enkripsi. Prosedur berikut ini adalah prosedur proses dekripsi algoritma GOST: Prosedur 3. Proses Dekripsi Algoritma GOST { Input : Cipherteks, key. } { Proses : Proses dekripsi algoritma GOST. { Output : Plainteks . } Kamus Data: Plainteks : Char; Key : Char; S-Box : array[0..7,0..15] of Integer = 4, 10, 9, 2, 13, 8, 0, 14, 6, 11, 1, 12, 7, 15, 5, 3, 14, 11, 4, 12, 6, 13, 15, 10, 2, 3, 8, 1, 0, 7, 5, 9, 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11, 7, 13, 10, 1, 0, 8, 9, 15, 14, 4, 6, 12, 11, 2, 5, 3, 6, 12, 7, 1, 5, 15, 13, 8, 4, 10, 9, 14, 0, 3, 11, 2, 4, 11, 10, 0, 7, 2, 1, 13, 3, 6, 8, 5, 9, 12, 15, 14, 13, 11, 4, 1, 3, 15, 5, 9, 0, 10, 14, 7, 6, 8, 2, 12, 1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12 ; K : array[0..7] of Integer; Universitas Sumatera Utara L,R : Integer; Cipherteks : Char; Algoritma: 1. Input cipherteks. 2. Input key. 3. Key diproses pada fungsi hash SHA-1 menjadi key_hashing 4. Ubah key_hashing menjadi data binary. 5. Bagi menjadi 8 bagian dan dimasukkan ke dalam K0 – K7 yang masing- masing 32 bit. 6. Ubah plainteks menjadi data binary. 7. Pembagian cipher kanan dan cipher kiri 32 bit. 8. Lakukan operasi modulo 2 32 terhadap cipher kanan dan K0 – K7. a. Jika putaran 8, maka key = K7 – K0. 9. Subtitusi cipher kiri ke dalam 8 S-Box S0 – S7 yang masing-masing 4 bit. 10. Jumlahkan hasil subtitusi dari 8 S-Box menjadi 32 bit. Cipher kiri = S- Box[0..7]. 11. Dilakukan pergeseran sebanyak 11 bit ke kiri. Cipher kiri = Circular Left Shift Cipher kiri 11 bit. 12. Operasi XoR Cipher kiri CLS dengan Cipher kanan. 13. Cipher kanan = Cipher kiri dan Cipher kiri = Cipher kanan. 14. Ulangi dari proses 7 sebanyak 32 kali putaran. 15. Jumlahkan Cipher kanan dan Cipher kiri. Universitas Sumatera Utara 16. Plainteks = Hasil penjumlahan Cipher kanan dan L. Untuk proses steganografi, dibutuhkan suatu prosedur yang merepresentasikan proses secara procedural. Berikut ini adalah prosedur proses dari penyisipan bit ke dalam gambar dengan menggunakan algoritma LSB: Prosedur 4. Proses Enkripsi Steganografi LSB. { Input : Plainteks, key, media carrier. } { Proses : Enkripsi teks dan penyisipan bit data ke dalam media carrier. } { Output : media carrier tersisipi pesan . } Kamus Data: Fleck, teks, key, : char; Jumlah_karakter_pesan, jumlah_pixel : integer; Pixel_red, pixel_green, pixel_blue : integer; Cipher, red, green, blue : Integer; Algoritma: 1. Buka gambar bitmap 24 bit yang akan dijadikan media carrier. 2. Inisialisasi gambar bitmap. 3. Cek fleck pada gambar. 4. Jika fleck ada, maka gambar berisi pesan dan proses berhenti dan kembali ke proses[1]. Universitas Sumatera Utara 5. Jika tidak maka lanjutkan ke proses[6]. 6. Input teks pesan yang akan disisipkan. 7. Input key enkripsi. 8. Dilakukan proses enkripsi algoritma GOST. 9. Cek jumlah karakter teks. 10. Jika jumlah karakter pesan jumlah pixel pada gambar, maka error message pesan terlalu panjang. 11. Jika tidak, maka proses [12]. 12. Penyisipan fleck sebagai penanda pesan pada pixel warna. 13. Lakukan penyisipan bit pada bit terakhir setiap pixel dimulai setelah pixel yang telah disisipi fleck. 14. Lakukan dari proses[13] sampai semua pesan tersisipi pada pixel gambar. 15. Simpan gambar bitmap 24 bit yang telah disisipi pesan. Dari prosedur tersebut, dapat juga disajikan dalam bentuk flowchart. Berikut Flowchart yang merepresentasikan algoritma dari proses penyisipan data pada Gambar 4.10. Universitas Sumatera Utara Mulai Data Teks Gambar Bitmap Enkripsi Data Pesan Kosong Cek pesan Sisip Fleck ke gambar Sisip data ke gambar Yes No Gambar Tersisipi pesan Selesai Gambar 4.10 Flowchart Penyisipan Pesan pada Gambar Bitmap Untuk proses steganografi, dibutuhkan suatu prosedur yang merepresentasikan proses secara procedural. Berikut ini adalah prosedur proses dari penyisipan bit ke dalam gambar dengan menggunakan algoritma LSB: Prosedur 4. Proses Dekripsi Steganografi LSB. { Input : Key, media carrier tersisipi pesan. } { Proses : Dekripsi pesan dan pengambilan bit terakhir setiap byte dari media carrier. { Output : Plainteks . } Universitas Sumatera Utara Kamus Data : Fleck, teks, key, : char; Jumlah_karakter_pesan, jumlah_pixel : integer; Pixel_red, pixel_green, pixel_blue : integer; Cipher, red, green, blue : Integer; Algoritma: 1. Buka gambar bitmap 24 bit yang akan dijadikan media carrier. 2. Inisialisasi gambar bitmap. 3. Cek fleck pada gambar. 4. Jika fleck ada, maka gambar berisi pesan dan lanjutkan ke proses[6]. 5. Jika tidak, maka proses berhenti dan kembali ke proses[1]. 6. Baca pesan dari gambar dengan cara ambil bit terakhir pada setiap pixel. 7. Lakukan proses[6] sampai akhir pixel. 8. Input key dekripsi. 9. Dilakukan proses dekripsi algoritma GOST. 10. Simpan gambar bitmap 24 bit yang pesannya telah diambil.

4.2 Implementasi Perangkat Lunak

Dari hasil perancangan sistem yang dilakukan, proses selanjutnya adalah tahap implementasi ke dalam bentuk program komputer. Pada tahap ini pemrograman yang digunakan adalah Borland Delphi 7. Input yang dibutuhkan oleh proses kriptosistem GOST ini adalah berbagai jenis file dan outputnya juga merupakan file yang Universitas Sumatera Utara