Implementasi IMPLEMENTASI DAN PENGUJIAN

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