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