BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Setelah sistem dianalisis dan dirancang seperti yang telah diuraikan pada bab sebelumnya, tahap selanjutnya adalah mengimplementasikan sistem tersebut ke dalam
bahasa pemrograman. Sistem ini dibangun dengan menggunakan Microsoft Visual Basic 2010. Pada sistem ini terdapat tiga halaman, yaitu : halaman Pengamanan,
halaman Pengungkapan, halaman Hitung MSE dan PSNR.
4.1.1. Halaman Pengamanan Halaman Pengamanan merupakan halaman yang pertama kali tampil pada saat sistem
dijalankan. Tampilan halaman Pengamanan ini dapat dilihat pada Gambar 4.1.
Gambar 4.1 Halaman Pengamanan
Universitas Sumatera Utara
Universitas Sumatera Utara
Pada Gambar 4.1 terdapat 2 menu yang dapat memanggil halaman yang lain, yaitu: menu Pengungkapan, menu Hitung MSE dan PSNR. Pada halaman Pengamanan ini
juga terdapat informasi tentang algoritma dan metode yang digunakan, serta terdapat juga nama dan nim dari penulis sendiri. Pada halaman ini user dapat melakukan
proses enkripsi dan embedding dengan terlebih dahulu memasukkan file teks, cover image, dan kunci rahasia. Kemudian, user
harus menekan tombol “Mulai” untuk melakukan proses enkripsi dan embedding. Hasil dari proses embedding dapat dilihat
pada Picturebox di sebelah kanan.
4.1.2 Halaman Pengungkapan Halaman Pengungkapan merupakan halaman yang ditampilkan jika user memilih
me nu “Pengungkapan”. Tampilan dari halaman Pengungkapan ini dapat dilihat pada
Gambar 4.2.
Gambar 4.2 Halaman Pengungkapan
Gambar 4.1 menunjukkan bahwa user dapat melakukan proses ekstrasi dan dekripsi dengan terlebih dahulu memasukkan stego image, dan kunci rahasia. Kemudian, user
harus menekan tombol “Mulai” untuk melakukan proses ekstrasi dan dekripsi . Hasil
Universitas Sumatera Utara
Universitas Sumatera Utara
dari proses dapat dilihat pada Richtextbox di sebelah kanan. Pada halaman ini juga akan ditampilkan lama eksekusi dari program.
4.1.3 Halaman Hitung MSE dan PSNR Halaman Hitung MSE dan PSNR merupakan halaman yang ditampilkan jika
pengguna memilih menu “Hitung MSE dan PSNR”. Adapun tampilan dari halaman Hitung MSE dan PSNR ini dapat dilihat pada Gambar 4.3.
Gambar 4.3 Halaman Hitung MSE dan PSNR
Pada Gambar 4.3 user dapat melakukan pengecekan terhadap kualitas citra dengan melakukan proses perhitungan MSE dan PSNR. User harus terlebih dahulu
memasukkan citra – citra yang akan dibandingkan. Kemudian sistem akan
menampilkan hasilnya setela h tombol “Hitung” ditekan.
4.1.4 Implementasi Algoritma RC5 Pada
bagian ini
akan dijelaskan
proses-proses yang
terjadi dalam
mengimplementasikan algoritma RC5 pada proses enkripsi dan dekripsi. Sebelum melakukan enkripsi dan dekripsi harus terlebih dahulu dilakukan perluasan kunci key
Universitas Sumatera Utara
Universitas Sumatera Utara
expanding yang meliputi : pembentukan array L, pembentukan array S, dan pencampuran array L dan S.
4.1.4.1. Proses Perluasan Kunci Key Expanding Parameter yang digunakan pada penelitian adalah RC5 321216 dengan plaintext
“Kripto Stegano” dan kunci rahasia “Kriptografi”. Berikut adalah proses perluasan kunci dari algoritma RC5 :
Plaintext : “Kripto Stegano“
Kunci rahasia : “Kriptografi”
w block size = 32 r round
= 12 b key length = 16
Keterangan : w
: ukuran blok enkripsi r
: jumlah putaran b
: panjang kunci rahasia Plaintext dan kunci rahasia harus diubah ke dalam bentuk hexadecimal sehingga
bentuknya menjadi berikut ini : Plaintext
: 4B726970 746F2053 74656761 6E6F Kunci rahasia : 4B726970 746F6772 616669
Dikarenakan algoritma yang digunakan penulis menggunakan nilai w sebesar 32 bit dan nilai b sebesar 16 byte 16 karakter maka plaintext dan kunci rahasia harus di-
padding agar sesuai dengan nilai yang telah ditetapkan. Berikut adalah bentuk plaintext dan kunci rahasia sesudah di-padding :
Plaintext : 4B726970 746F2053 74656761 6E6F0000
Kunci rahasia : 4B726970 746F6772 61666900 00000000
Universitas Sumatera Utara
Universitas Sumatera Utara
4.1.4.1.1. Proses Pembentukan Array L Pembentukan Array L merupakan tahap pertama dalam perluasan kunci RC5. Dengan
menggunakan kunci rahasia yang telah di-padding maka berikutnya dilakukan proses perhitungan untuk mendapatkan array L[0,1..c-1] dengan algoritma :
Berikut adalah hasil perhitungan untuk mencari array L[0,1..c-1] : Dimana : b = 16, u = w8 = 4 , c = bu = 4.
L[i4] = L[3] untuk i = 15, 14, 13 and 12. L[3] = L[3] 8 + K[15] = 00 + 00 = 00
L[3] = L[3] 8 + K[14] = 0000 + 00 = 0000 L[3] = L[3] 8 + K[13] = 000000 + 00 = 000000
L[3] = L[3] 8 + K[12] = 00000000 + 00 = 00000000 L[i4] = L[2] untuk i = 11, 10, 9 and 8.
L[2] = L[2] 8 + K[11] = 00 + 00 = 00 L[2] = L[2] 8 + K[10] = 0100 + 69 = 0069
L[2] = L[2] 8 + K[9] = 006900 + 66= 006966 L[2] = L[2] 8 + K[8] = 00696600 + 61 = 00696661
L[i4] = L[1] untuk i = 7, 6, 5 and 4.
L[1] = L[1] 8 + K[7] = 00 + 72= 72 L[1] = L[1] 8 + K[6] = 7200 + 67 = 7267
L[1] = L[1] 8 + K[5] = 726700 + 6F = 72676F L[1] = L[1] 8 + K[4] = 72676F00 + 74 = 72676F74
L[i4] = L[0] for i = 3, 2, 1 and 0.
L[0] = L[0] 8 + K[3] = 00 + 70 = 70 L[0] = L[0] 8 + K[2] = 7000 + 69 = 7069
L[0] = L[0] 8 + K[1] = 706900 + 72 = 706972 L[0] = L[0] 8 + K[0] = 70697200 + 4B = 7069724B
c = bu; for i = b
– 1 downto 0 do L[iu] = L[iu] 8 + K[i];
Universitas Sumatera Utara
Universitas Sumatera Utara
Tabel 4.1 Hasil Perhitungan Manual Array L[0,1..c-1] L[0]
L[1] L[2]
L[3] 7069724B
72676F74 00696661
00000000
4.1.4.1.2. Proses Pembentukan Array S Setelah proses pembentukan array L, maka proses selanjutnya adalah proses
pembuatan array S. array S dibentuk dengan menggunakan algoritma sebagai berikut:
Dimana : t = 2r + 1 = 2 12+1 = 26, P
32 =
B7E15163, dan Q
32 =
9E3779B9. Nilai array S dapat dilihat pada tabel 4.2.
Tabel 4.2 Hasil Perhitungan Manual Array S[0,1..t-1]
n S[n]
1 B7E15163 + 9E3779B9 = 5618CB1C
2 5618CB1C + 9E3779B9 = F45044D5
3 F45044D5 + 9E3779B9 = 9287BE8E
4 9287BE8E + 9E3779B9 = 30BF3847
5 30BF3847 + 9E3779B9 = CEF6B200
6
CEF6B200 + 9E3779B9 = 6D2E2BB9
7 6D2E2BB9 + 9E3779B9 = 0B65A572
. .
. .
. .
23
50A5C749 + 9E3779B9 = EEDD4102
24 EEDD4102 + 9E3779B9 = 8D14BABB
25 8D14BABB + 9E3779B9 = 2B4C3474
S[0] = P
32
; For i = 1 to t-1 do
S i = S i − + Q
32
:
Universitas Sumatera Utara
Universitas Sumatera Utara
4.1.4.1.3. Proses Pencampuran Array L dan S Setelah dilakukan proses pembentukan array L dan array S, maka proses selanjutnya
adalah mencampurkan kedua array tersebut dengan algoritma sebagai berikut :
Hasil pencampuran array L dengan array S dapat dilihat pada tabel 4.3.
Tabel 4.3 Hasil Pencampuran Array L Dengan Array S A = S0 = B7E15163 + 00000000 + 00000000 3 = BF0A8B1D
B = L0 = 7069724B + BF0A8B1D + 00000000 BF0A8B1D = 05EE7FAD A = S1 = 5618CB1C + BF0A8B1D + 05EE7FAD 3 = D88EAF30
B = L1 = 72676F74 + D88EAF30 + 05EE7FAD DE7D2EDD = 2A1C93CA A = S2 = F45044D5 + D88EAF30 + 2A1C93CA 3 = B7DC3E7F
B = L2 = 00696661 + B7DC3E7F + 2A1C93CA E1F8D249 = C47155C4 A = S3 = 9287BE8E + B7DC3E7F + C47155C4 3 = 76AA9688
B = L3 = 00000000 + 76AA9688 + C47155C4 13B1BEC4C = BEC4C3B1 A = S4 = 30BF3847 + 76AA9688 + BEC4C3B1 3 = 31749403
B = L0 = 05EE7FAD + 31749403 + BEC4C3B1 F03957B4 = 761F627D A = S5 = CEF6B200 + 31749403 + 761F627D 3 = B4554403
. .
.
A = S24 = 8C4706A2 + DF020659 + 95223DAC 3 = 035A5538 B = L0 = F268D47E + 035A5538 + 95223DAC 987C92E4 = AE567628
A = S25 = F0735579 + 035A5538 + AE567628 3 = 112106CD B = L1 = 4239B824 + 112106CD + AE567628 BF777CF5 = A3203626
4.1.4.2. Proses Enkripsi Setelah tahap perluasan kunci selesai dilakukan, maka tahap selanjutnya adalah proses
enkripsi. Proses enkripsi RC5 menggunakan algoritma sebagai berikut :
I =j = 0; A = B = 0;
do 3 ∗ max t, c times:
A = S[i] = S[i] + A + B 3 B = L[j] = L[j] + A + B A + B;
i = i + 1 mod t; j = j + 1 mod c.
Universitas Sumatera Utara
Universitas Sumatera Utara
Plaintext : 4B726970 746F2053 74656761 6E6F0000
A B
Hasil dari enkripsi tahap 1 dapat dilihat pada tabel 4.4 berikut ini.
Tabel 4.4 Hasil Enkripsi Tahap 1 Round
A B
DA679BFB D9198A23
1 9637A9A8
7E949194 2
4EC0DDA1 299ED426
3 9480BA56
A5AE1F76 4
85D3C225 693A5CD1
5 87E6EA1D
3F68CD4D 6
EE8E4741 71102837
7 B97D10EB
AF86E0E9 8
FCDD5AC2 B8D000B5
9 27B29DB1
624CED95 10
E47A42C0 BEDA25AE
11 BEE07C1D
3F09518F 12
9A23962C BD9B411F
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F A
B
A = A + S[0]; B = B + S[1];
for i = 1 to r do
A = A ⊕ B B + S[2i];
B = B ⊕ A A + S[2i + 1];
Universitas Sumatera Utara
Universitas Sumatera Utara
Hasil dari enkripsi tahap 2 dapat dilihat pada tabel 4.5 berikut ini.
Tabel 4.5 Hasil Enkripsi Tahap 2 Round
A B
4C9073AA D90FD131
1 BF7E4627
893C9178 2
2A289645 2B772370
3 723359DC
CF131F85 4
E1D041B3 4B302887
5 BA31AA9F
1A0DF780 6
C9E08D4F 8AAAFE14
7 33E1765B
C38A56E8 8
701E0A85 DDECA5BE
9 C446C7D4
4EE54976 10
88942BD5 8D1C4485
11 5612CF75
5D1D682A 12
41F7D164 DFCC9BAE
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F 41F7D164 DFCC9BAE
A B Hasil dari enkripsi tahap 3 dapat dilihat pada tabel 4.6 berikut ini.
Tabel 4.6 Hasil Enkripsi Tahap 3 Round
A B
6EC1CE39 D31969D0
1 2230D8C0
419AB755 2
BD9EC8BB 40D65FBB
Universitas Sumatera Utara
Universitas Sumatera Utara
3 C4E89D35
5B4F5FB3 4
51FC73BA 7DA97F1D
5 2F87B1DE
7618EA24 6
C399EFD5 8B79C43E
7 D0654CAE
67E4116D 8
30B5CD85 559CB512
9 BB27B0AB
00717E45 10
4ACB60C9 ACE08EEE
11 A08EDEFF
65392E61 12
8ECA3675 13BE8530
Plaintext : 4B726970 746F2053 74656761 6E6F0000
9A23962C BD9B411F 41F7D164 DFCC9BAE
8ECA3675 13BE8530
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
4.1.4.3. Proses Dekripsi Proses Dekripsi adalah proses untuk mengembalikan ciphertext menjadi plaintext.
Proses dekripsi RC5 menggunakan algoritma sebagai berikut :
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
A B
For i = r down to 1 do B = B − S i + A ⊕ A;
A = A − S i B ⊕ B; B = B − S ;
A = A − S ;
Universitas Sumatera Utara
Universitas Sumatera Utara
Hasil dari dekripsi tahap 1 dapat dilihat pada tabel 4.7 berikut ini.
Tabel 4.7 Hasil Dekripsi Tahap 1 Round
A B
12 A08EDEFF
65392E61 11
4ACB60C9 ACE08EEE
10 BB27B0AB
00717E45 9
30B5CD85 559CB512
8 D0654CAE
67E4116D 7
C399EFD5 8B79C43E
6 2F87B1DE
7618EA24 5
51FC73BA 7DA97F1D
4 C4E89D35
5B4F5FB3 3
BD9EC8BB 40D65FBB
2 2230D8C0
419AB755 1
6EC1CE39 D31969D0
DFCC9BAE 6E6F0000
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000 A
B Hasil dari dekripsi tahap 2 dapat dilihat pada tabel 4.8 berikut ini.
Tabel 4.8 Hasil Dekripsi Tahap 2 Round
A B
12 5612CF75
5D1D682A 11
88942BD5 8D1C4485
10 C446C7D4
4EE54976
Universitas Sumatera Utara
Universitas Sumatera Utara
9 701E0A85
DDECA5BE 8
33E1765B C38A56E8
7 C9E08D4F
8AAAFE14 6
BA31AA9F 1A0DF780
5 E1D041B3
4B302887 4
723359DC CF131F85
3 2A289645
2B772370 2
BF7E4627 893C9178
1 4C9073AA
D90FD131 BD9B411F
74656761
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000 BD9B411F 74656761
A B Hasil dari dekripsi tahap 3 dapat dilihat pada tabel 4.9 berikut ini.
Tabel 4.9 Hasil Dekripsi Tahap 3 Round
A B
12 BEE07C1D
3F09518F 11
E47A42C0 BEDA25AE
10 27B29DB1
624CED95 9
FCDD5AC2 B8D000B5
8 B97D10EB
AF86E0E9 7
EE8E4741 71102837
6 87E6EA1D
3F68CD4D 5
85D3C225 693A5CD1
4 9480BA56
A5AE1F76
Universitas Sumatera Utara
Universitas Sumatera Utara
3 4EC0DDA1
299ED426 2
9637A9A8 7E949194
1 DA679BFB
D9198A23 4B726970
746F2053
Ciphertext : 9A23962C 41F7D164 8ECA3675 13BE8530
DFCC9BAE 6E6F0000 BD9B411F 74656761
4B726970 746F2053
Plaintext
: 4B726970 746F2053 74656761 6E6F0000
Dengan mengubah hexadecimal menjadi karakter maka didapatkan kembali teks awal yaitu,
Plaintext :
“Kripto Stegano”
4.1.5. Implementasi Metode LSB Pada bagian ini akan dijelaskan proses menyisipkan ciphertext ke dalam cover image
kemudian proses mengungkapkan kembali ciphertext tersebut dari stego image. Cover image yang akan digunakan berukuran 100 x 100 pixel. Berikut adalah cover image
yang akan digunakan.
Gambar 4.4 Cover Image 100 x 100 Pixel
4.1.5.1. Proses Penyisipan Proses Penyisipan adalah proses menyisipkan ciphertext hasil dari enkripsi RC5 ke
dalam cover image dengan cara mengacak terlebih dahulu pixel yang akan disisipi dengan algoritma random Linear Congruential Generator LCG. Dengan mengubah
ciphertext yang telah didapatkan sebelumnya menjadi stream bit maka ciphertext berubah menjadi berikut ini :
Universitas Sumatera Utara
Universitas Sumatera Utara
Ciphertext : 00111001 01000001 00110010 00110011 00111001 00110110
00110010 01000011 00110100 00110001 01000110 00110111 01000100 00110001 00110110 00110100 00111000 01000101 01000011 01000001 00110011 00110110
00110111 00110101 00110001 00110011 01000010 01000101 00111000 00110101 00110011 00110000
Setelah mengubah ciphertext menjadi stream bit, maka proses selanjutnya adalah menyisipkan masing-masing bit tersebut ke dalam pixel
yang telah diacak menggunakan algoritma LCG ke dalam cover image. Hasil penyisipan ciphertext ke
dalam cover image dapat dilihat pada tabel 4.10.
Tabel 4.10 Hasil Penyisipan Ciphertext ke dalam Cover image Posisi
pixel Sebelum Disisipkan
Bit yang disisipkan
Sesudah Disisipkan R
G B
R G
B 60,0
63 63
63 001
62 62
63 95,0
110 1
1 30,1
64 64
64 010
64 65
64 81,1
64 64
64 100
65 64
64 12,0
000 94,0
100 1
99,1 110
1 1
43,1 64
64 64
010 64
65 64
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
16,0 52
52 52
011 52
53 53
11,1 12
12 12
000 12
12 12
45,1 64
64 64
64 64
64
Untuk mengetahui berapa panjang bit yang harus diektraksi, maka dilakukan penanda dengan memasukkan panjang ciphertext ke dalam pixel terakhir di layer B cover
image. Pada kasus ini, maka panjang ciphertext yang harus dimasukkan sebagai penanda sebesar :
Universitas Sumatera Utara
Universitas Sumatera Utara
Ciphertext : 9A23962C41F7D1648ECA367513BE8530
Panjang ciphertext : 32 Panjang ciphertext dalam bit : 00100000
Untuk mengetahui berapa panjang ciphertext dalam bit yang harus diambil maka harus dipadding dengan nilai “0” sebagai pembatas dan nilai “1” sepanjang panjang
ciphertext dalam bit, sehingga penandanya menjadi seperti berikut : Penanda : 00100000011111111
Proses penyisipan penanda kedalam cover image layer B dapat dilihat pada tabel 4.11.
Tabel 4.11 Proses Penyisipan Penanda ke dalam Cover image Posisi
pixel Sebelum Disisipkan
Bit yang disisipkan
Sesudah Disisipkan B
B 83,99
84,99 85,99
1 1
86,99 87,99
88,99 89,99
90,99 91,99
92,99 1
1 93,99
1 1
94,99 1
1 95,99
1 1
96,99 1
1 97,99
1 1
98,99 1
1 99,99
1 1
Universitas Sumatera Utara
Universitas Sumatera Utara
4.1.5.2. Proses Ekstraksi Proses Ekstraksi adalah proses pengambilan kembali nilai-nilai bit yang telah
disisipkan dan disatukan kembali menjadi suatu ciphertext. Terlebih dahulu, sistem harus mengekstraksi penanda untuk mengetahui panjang ciphertext yang akan
diekstraksi nantinya. Kemudian, sistem dapat mengambil kembali ciphertext yang telah disisipkan.. Berikut proses pengambilan penandanya :
1. Sistem membaca dari pixel terakhir layer B secara berurutan dan mengambil
bit terakhir dari pixel
tersebut hingga sistem menemukan nilai “0”.
Contoh : 99,99 mempunyai bit
terakhir “1” 98,99 mempunyai bit
terakhir “1” 97,99 mempunyai bit
terakhir “1” 96,99 mempunyai bit
terakhir “1” 95,99 mempunyai bit
terakhir “1” 94,99 mempunyai bit
terakhir “1” 93,99 mempunyai bit
terakhir “1” 92,99 mempunyai bit
terakhir “1” 91,99 mempunyai bit
terakhir “0”
2.
Ketika sistem sudah menemukan nilai “0” maka sistem dapat mengetahui
berapa panjang yang harus diambil selanjutnya sesuai dengan banyaknya nilai
“1” yang terambil . Pada contoh diatas sistem harus mengambil 8 bit lagi.
90,99 mempunyai bit terakhir “0”
89,99 mempunyai bit terakhir “0”
88,99 mempunyai bit terakhir “0”
87,99 mempunyai bit terakhir “0”
86,99 mempunyai bit terakhir “0”
85,99 mempunyai bit terakhir “1”
84,99 mempunyai bit terakhir “0”
83,99 mempunyai bit terakhir “0”
3. Nilai-
nilai tersebut akan digabung sehingga menjadi “00100000” sehingga didapatkan lah panjang ciphertext = 32.
Universitas Sumatera Utara
Universitas Sumatera Utara
Setelah dilakukan pengambilan penanda langkah selanjutnya adalah membangkitkan algoritma random LCG untuk mendapatkan posisi pixel yang akan diekstraksi. Proses
ekstraksi ciphertext dapat pada tabel 4.12.
Tabel 4.12 Proses Ekstraksi Ciphertext Posisi
pixel Bit yang
disisipkan R
G B
60,0 62
62 63
001 95,0
1 1
110 30,1
64 65
64 010
81,1 65
64 64
100 12,0
000 94,0
100 99,1
1 110
43,1 64
65 64
010 .
. .
. .
. .
. .
. .
. .
. .
16,0 52
53 53
011 11,1
12 12
12 000
45,1 64
64 64
Pada tabel 4.12, didapatkan ciphertext sebagai berikut : Ciphertext
: 00111001 01000001 00110010 00110011 00111001 00110110 00110010 01000011 00110100 00110001 01000110 00110111 01000100 00110001
00110110 00110100 00111000 01000101 01000011 01000001 00110011 00110110 00110111 00110101 00110001 00110011 01000010 01000101 00111000 00110101
00110011 00110000 Selanjutnya ciphertext tersebut diubah kedalam bentuk karakter sehingga menjadi
seperti berikut : Ciphertext
: 9A23962C41F7D1648ECA367513BE8530
Universitas Sumatera Utara
Universitas Sumatera Utara
4.2. Pengujian