Implementasi Algoritma GOST pada file serta penyembunyian text terenkripsi ke dalam gambar dengan algoritma LSB
DAFTAR PUSTAKA
A. Menezes, P. van, Oorschot, and S. Vanstone. 1997. Handbook of Applied Cryptography. USA: CRC Press, Inc.
Ariyus, Dony. 2006. Komputer Security. Yogyakarta: ANDI.
Bishop, Matt. 2005. Introduction to Computer Security. Boston: Pearson Eduction, Inc.
Cox, Ingemar J. 2008. Digital Watermarking and Steganography. USA: Morgan Kaufmann Publications.
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Cetakan Pertama. Bandung: Informatika Bandung.
Marcus, Teddy & CS. 2005. _Pemrograman Delphi dengan ADO Express. Bandung: Informatika.
Munir, Rinaldi. 2006. Kriptografy. Bandung: Informatika.
(2)
100
Rhee, Man Young. 1994. Crytography and Secure Communications. Korea: McGraw-Hill Book Co.
Richard M. Low, Mark Stamp. 2007. Applied Cryptanalysis Breaking Ciphers in the Real World. USA: John Wiley & Sons, Inc.
Schneier, Bruce. 1996. Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C. USA: John Wiley & Sons, Inc.
Setiawan, Yudha. 2005. Tips Delphi Praktis dan Singkat. Yogyakarta: ANDI. Stallings, William. 2006. Cryptography and Network Security. United State Of
America. Person Prentice Hall.
Young Rhee, Man. 2003. Internet Security: Cryptographic Principles, Algorithms and Protocols. USA: John Wiley & Sons Inc.
Amanda, Secure Hash Algorithm ( SHA ) :
http://amanjdac.Integerpress.com/2007/12/19/secure-hash-algorithm Diakses tanggal 6 Mei 2008.
Setiadi, Budi, Analisis Sistem Keamanan Data Dengan Menggunakan Metoda Des dan Metoda Gost: http://geocities.com/roojenoeng/budi.rtf Diakses tanggal 10 April 2008.
(3)
Supriyanto, Hadi, Pengamanan Pesan Dengan Tanda Tangan Digital “GOST 34.10 (Russian DSA)” : http://budi.insan.co.id/courses/el695/projects2002-2003/hadi-report.doc Diakses tanggal 10 April 2008.
Haryanto, Pengantar Kriptografi:
http://staffsite.gunadarma.ac.id/haryanto/index.php?stateid=download&id=7261&part =files Diakses tanggal 10 April 2008.
Truong, Long, Ben Lee III. 2002. Steganography.
http://islab.oregonstate.edu/koc/ece478/02Report/LT.pdf Diakses tanggal 7 Juli 2008.
Helena, Maria, Steganalisis Khusus dengan Pendekatan Subjektif dan Statistik pada Stego Gambar:
http://www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-030.pdf Diakses tanggal 10 April 2008.
Rodiah, Penyembunyian Pesan (Steganografi) Pada Gambar:
http://staffsite.gunadarma.ac.id/rodiah/index.php?stateid=download&id=385&part=pu blication Diakses tanggal 10 April 2008.
Sellars, Duncan. "An Introduction to Steganography."
http://www.totse.com/en/privacy/encryption/163947.html Diakses tanggal 11 Mei 2008.
SHA hash functions:
(4)
99
DAFTAR PUSTAKA
A. Menezes, P. van, Oorschot, and S. Vanstone. 1997. Handbook of Applied Cryptography. USA: CRC Press, Inc.
Ariyus, Dony. 2006. Komputer Security. Yogyakarta: ANDI.
Bishop, Matt. 2005. Introduction to Computer Security. Boston: Pearson Eduction, Inc.
Cox, Ingemar J. 2008. Digital Watermarking and Steganography. USA: Morgan Kaufmann Publications.
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Cetakan Pertama. Bandung: Informatika Bandung.
Marcus, Teddy & CS. 2005. _Pemrograman Delphi dengan ADO Express. Bandung: Informatika.
Munir, Rinaldi. 2006. Kriptografy. Bandung: Informatika.
(5)
Rhee, Man Young. 1994. Crytography and Secure Communications. Korea: McGraw-Hill Book Co.
Richard M. Low, Mark Stamp. 2007. Applied Cryptanalysis Breaking Ciphers in the Real World. USA: John Wiley & Sons, Inc.
Schneier, Bruce. 1996. Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C. USA: John Wiley & Sons, Inc.
Setiawan, Yudha. 2005. Tips Delphi Praktis dan Singkat. Yogyakarta: ANDI. Stallings, William. 2006. Cryptography and Network Security. United State Of
America. Person Prentice Hall.
Young Rhee, Man. 2003. Internet Security: Cryptographic Principles, Algorithms and Protocols. USA: John Wiley & Sons Inc.
Amanda, Secure Hash Algorithm ( SHA ) :
http://amanjdac.Integerpress.com/2007/12/19/secure-hash-algorithm Diakses tanggal 6 Mei 2008.
Setiadi, Budi, Analisis Sistem Keamanan Data Dengan Menggunakan Metoda Des dan Metoda Gost: http://geocities.com/roojenoeng/budi.rtf Diakses tanggal 10 April 2008.
(6)
101
Supriyanto, Hadi, Pengamanan Pesan Dengan Tanda Tangan Digital “GOST 34.10 (Russian DSA)” : http://budi.insan.co.id/courses/el695/projects2002-2003/hadi-report.doc Diakses tanggal 10 April 2008.
Haryanto, Pengantar Kriptografi:
http://staffsite.gunadarma.ac.id/haryanto/index.php?stateid=download&id=7261&part =files Diakses tanggal 10 April 2008.
Truong, Long, Ben Lee III. 2002. Steganography.
http://islab.oregonstate.edu/koc/ece478/02Report/LT.pdf Diakses tanggal 7 Juli 2008.
Helena, Maria, Steganalisis Khusus dengan Pendekatan Subjektif dan Statistik pada Stego Gambar:
http://www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-030.pdf Diakses tanggal 10 April 2008.
Rodiah, Penyembunyian Pesan (Steganografi) Pada Gambar:
http://staffsite.gunadarma.ac.id/rodiah/index.php?stateid=download&id=385&part=pu blication Diakses tanggal 10 April 2008.
Sellars, Duncan. "An Introduction to Steganography."
http://www.totse.com/en/privacy/encryption/163947.html Diakses tanggal 11 Mei 2008.
(7)
BAB 3
ANALISIS DAN PEMODELAN PERANGKAT LUNAK
3.1 Analisis Masalah
Dengan berkembangnya sistem komputer dan teknik komunikasi memungkinkan adanya hubungan antar komputer untuk menyalurkan data dari satu komputer ke komputer lain. Hal ini dapat menunjang terselesaikannya suatu pekerjaan secara efisien, cepat dan akurat. Namun permasalahannya adalah data tersebut dapat dibaca, dicuri, disalahgunakan, bahkan dirusak oleh pihak-pihak yang tidak bertanggung jawab.
Hacker dengan segala kreativitasnya mempunyai tujuan yang beragam dalam menyerang sasarannya, dari mulai yang bersifat iseng atau mengganggu hingga tingkat yang merusak.
Untuk mengantisipasi terhadap ancaman yang mengganggu lalulintas data oleh hacker dalam sistem jaringan komputer, data harus memiliki sistem keamanan data. Untuk itu enkripsi data dibutuhkan.
Contoh kasus yang akan dibahas yaitu bagaimana seorang user ingin mengirim informasi melalui email. Sebelumnya user telah menyiapkan file berbentuk *.zip dan dinamai dengan rahasia.zip dengan besar file 10 kb. Pesan berupa teks yang akan
(8)
51
disampaikan kepada user yang berhak menerima adalah “ Ini Pesan Rahasia “. Untuk menjaga kerahasian data, user ingin menggunakan sistem keamanan data yang handal.
3.2 Penyelesaian Masalah
Berdasarkan uraian sebelumnya, salah satu elemen yang paling penting dalam komunikasi menggunakan komputer untuk menjamin kerahasian data adalah enkripsi. Enkripsi adalah sebuah proses yang melakukan sebuah perubahan kode dari yang bisa dimengerti menjadi sebuah kode atau cipher yang tidak bisa dimengerti. Sebuah cipher menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, teknik ini digunakan dalam sebuah sistem keamanan sebuah PC (personal komputer) dan sistem keamanan jaringan/network.
Untuk pengamanan data yang cukup penting tidak ada jalan lain selain menggunakan program khusus pengamanan/enkripsi data. Saat ini telah banyak beredar program khusus pengamanan data baik freeware, shareware, maupun komersial yang sangat baik. Pada umumnya program tersebut tidak hanya menyediakan satu metoda saja, tetapi beberapa jenis metoda.
Teknik enkripsi ada bermacam-macam metoda misalnya, DES, TEA, GOST, RSA, Blowfish, Skipjack, Twofish dan lain sebagainya. Penulisan tugas akhir ini menggunakan algoritma dari metoda GOST (Gosudarstennyi Standard). Algoritma
(9)
GOST digunakan untuk mengenkripsi file rahasia.zip dan teks “ Ini Pesan Rahasia”. Untuk menutupi kelemahan dari algoritma GOST ini digunakan fungsi hash SHA-1.
Untuk mengelabui para hacker yang ingin mengetahui pesan rahasia yang ditulis oleh user, pada tugas akhir ini menggunakan teknik steganografi. Teknik steganografi yang digunakan adalah LSB ( Least Significant Bit).
Dari data sebelumnya dapat disimpulkan terdapat 2 (dua) proses kriptografi yaitu proses kripto file dan kripto teks di mana kripto file dan kripto teks memiliki proses yang sama dalam mengenkripsi, bedanya hanya data input yang akan dienkripsi.
3.2.1 Proses Enkripsi Algoritma GOST
Untuk mengenkripsi file rahasia.zip user harus menggunakan program enkripsi dekripsi data. Untuk mengatasi masalah dalam mengamanankan data, pada tugas akhir ini menggunakan algoritma kriptografi GOST. Logika pengamanan file rahasia.zip dapat diuraikan berikut ini:
Dari file rahasia.zip dengan besar file 10 Kb, dapat dihitung jumlah bit datanya. Jika 1 byte terdiri dari 8 bit, maka 10 Kb = 10000 byte. Berarti besar file 10000 x 8 = 80000 bit. Sehingga dihitung jumlah proses yang akan dilakukan sebanyak 80000 / 64 = 1250 proses.
(10)
53
File rahasia.zip diinisialisasi menjadi plainteks yang panjangnya 64 bit akan dipecah menjadi 2 (dua) bagian sebesar 32 bit kiri L dan 32 bit kanan R pada proses pertama. pada setiap putarannya data kiri akan menjadi data kanan, data kanan akan dilakukan operasi data kiri di-XoR-kan dengan fungsi f.
Misalkan:
Cipher Kanan = 11110000 11001100 01010101 00001111 Cipher Kiri = 01010101 00001111 11110000 01010101 K0 = 11000011 10101010 00110011 11110011
Setelah didapat nilai dari cipher kanan dan cipher kiri serta K0 adalah sub-kunci ke-0 dari K=sub-kunci, proses selanjutnya adalah penjumlahan sub-sub-kunci K0 dengan cipher kanan dan dimodulokan dengan 232. K0 adalah sub-kunci yang didapat dari input key yang telah dibagi menjadi 8 bagian yaitu K0 – K7. K0 adalah kunci putaran pertama pada proses enkripsi data. Proses penjumlahan K0 dengan cipher kanan dan modulo 232 dilakukan dalam bentuk desimal. Sehingga cipher kanan = 4039922959 dan K0 = 3282711539. P adalah variabel yang menyimpan nilai setiap putaran.
P = ( R + K0 ) mod 232.
Dengan demikian, diperolehlah:
(11)
P = 3027667202
P = 10110100 01110110 10001001 00000010
Proses sebelumnya adalah proses fungsi f(Ri-1, Ki-1). Untuk lebih jelasnya, proses enkripsi dapat dilihat pada Diagram Alir Fungsi f (metoda Gost) pada Gambar 2.5.
Untuk fungsi f, setiap putarannya data sebelah kanan akan dilakukan operasi penambahan dengan blok kunci yang berbeda modulus dengan 232 atau untuk hitungan per byte, setiap byte-nya dari bilangan itu akan modulus 28 . Fungsi modulus yaitu agar setiap bilangan tidak melebihi 255 (untuk hitungan per byte). Kemudian data yang dihasilkan akan dipecah menjadi 8 bagian dan dijadikan input yang berbeda untuk tiap S-Boxnya. Algoritma GOST tidak menentukan standar dalam pembentukan S-Boxnya. Setelah itu data akan dikombinasikan lagi menjadi 32 bit. Terakhir data akan dirotasi 11 bit ke kiri, seperti yang telah disebutkan pada pembahasan sebelumnya.
Dari hasil nilai P, nilai P akan dibagi menjadi 8 bagian dan masing–masing dimasukan ke dalam S1-S8. Dari nilai P = 1011 0100 0111 0110 1000 1001 0000
0010. S1 = 1011, S2 = 0100, S3 = 0111, S4 = 0110, S5 = 1000, S6 = 1001, S7 = 0000, S8 = 0010. Kemudian nilai masing–masing S diubah ke dalam decimal
(12)
55
Kemudian nilai masing–masing S dicocokkan nilai yang ada pada array S-Box. Untuk inisialisasi S-Box dapat dilihat pada S-Box berikut:
S-Box pada GOST:
Jika pada kotak S1, masukannya:
1011 (nilai desimal 11) maka keluarannya: nilai di dalam elemen ke-11:
1 atau 0001 Jika pada kotak S2, masukannya:
0100 ( nilai desimal 4 ) maka keluarannya: nilai di dalam elemen ke-4:
12 atau 1100 Kotak-S 1:
4 10 9 2 13 8 0 14 6 11 1 12 7 15 5 3 Kotak-S 2:
14 11 4 12 6 13 15 10 2 3 8 1 0 7 5 9 Kotak-S 3:
5 8 1 13 10 3 4 2 14 15 12 7 6 0 9 11 Kotak-S 4:
7 13 10 1 0 8 9 15 14 4 6 12 11 2 5 3 Kotak-S 5
6 12 7 1 5 15 13 8 4 10 9 14 0 3 11 2 Kotak-S 6:
4 11 10 0 7 2 1 13 3 6 8 5 9 12 14 14 Kotak-S 7:
13 11 4 1 3 15 5 9 0 10 14 7 6 8 2 12 Kotak-S 8:
(13)
Dan seterusnya sampai ke S8. Hasil substitusi dari semua kotak S ini digabung menjadi pesan 32-bit, sehingga hasilnya:
P = ( S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 ) P = 0001 1100 0111 0100 1000 0011 1101 1111.
Kemudian pesan 32-bit ini digeser ke kiri sejauh 11 bit secara sirkuler. Hasil pergeseran 11 bit ke kiri P = 11100011 10100100 000111101 1111000. Hasil pergesaran P di XOR-kan dengan nilai cipher kiri.
sehingga:
P = 11100011 10100100 000111101 1111000 XoR
L = 01010101 00001111 11110000 01010101
Sehingga cipher kanan yang baru = 10110110 10101011 11101110 10101101. Nilai cipher kiri yang baru adalah cipher kanan sebelum operasi fungsi f. Proses ini diulang sebanyak 32 kali. Hasil proses file rahasia.zip akan disimpan menjadi file rahasia.zip.G%st. Sedangkan kripto teks “ Ini Pesan Rahasia” memiliki proses yang sama seperti proses yang diuraikan sebelumnya.
3.2.2 Proses Dekripsi Algoritma GOST
Proses dekripsi dilakukan dengan cara membalikan proses yang terjadi pada proses enkripsi, Plaintext dibagi menjadi 64 bit dan masing–masing dibagi 32 bit L dan 32
(14)
57
bit R. Proses pada enkripsi di mana R diletakan sebelah kanan pada proses dekripsi R diletakkan sebelah kiri dan L yang diletakkan sebelah kiri pada dekripsi diletakkan sebelah kanan.
L0 = R0 dan R0 = L0
Selanjutnya proses yang dilakukan sama dengan proses enkripsi. Proses pembentukan kunci hampir sama dengan enkripsi tetapi iterasinya dibalik. urutan kunci dibalik yaitu dimulai dari blok kunci yang terakhir.
3.2.3 Proses Steganografi LSB
Metoda yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya pada file gambar pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (lsb) pada data pixel yang menyusun file tersebut. Seperti yang diketahui untuk file bitmap 24 bit, setiap pixel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan demikian pada setiap pixel file bitmap 24 bit dapat menyisipkan 3 bit data.
Pada kasus di atas user ingin menyampaikan pesan yang berisi ”Ini Pesan
Rahasia”. Untuk Proses penyisipan pesan ke dalam gambar, berikut adalah langkah-langkah yang akan dilakukan untuk menyisipkan pesan tersebut:
(15)
huruf I adalah huruf pertama dari pesan dan dapat disisipkan dalam 3 pixel, misalnya data gambar bitmap original adalah sebagai berikut:
( 00100111 11101001 11001000 ) red blue green
( 00100111 11001000 11101001 ) red green blue
( 11001000 00100111 11101001 ) green red blue
terlebih daluhu huruf ini diubah menjadi bentuk ASCII di mana nilai ASCII dari I adalah 73. Kemudian setelah mendapatkan nilai desimalnya, dilakukan konversi ke dalam bentuk biner. Nilai biner dari I adalah 01001001. Dengan menyisipkan-nya pada data pixel tetrsebut akan dihasilkan:
( 00100110 11101001 11001000 ) red blue green
( 00100110 11001001 11101000 ) red green blue
( 11001000 00100111 11101001 ) green red blue
Terlihat hanya lima bit rendah yang berubah, untuk mata manusia tidak akan tampak perubahannya. Secara rata-rata dengan metoda ini hanya setengah dari data bit rendah yang berubah, sehingga apabila dibutuhkan maka dapat digunakan bit rendah
(16)
59
ke-2 bahkan ke-3. Proses ini dilakukan berulang sampai semua pesan tersisipkan ke dalam gambar sampai maksimum pesan yang dapat ditampung oleh gambar.
Dalam 1 byte gambar, informasi yang bisa disembunyikan sebesar 1 atau 2 bit, karena hanya 1 atau 2 bit yang terakhir yang bisa diganti. Namun pada penelitian ini bit yang akan diganti hanya bit yang terakhir. Jadi 1 pixel atau 3 byte atau 24 bit bisa menyembunyikan informasi sebesar 3 bit. Misalkan gambar yang digunakan dengan resolusi 30x40 pixel, ini setara dengan 1200 pixel atau 3600 byte (1200x3). Setiap byte hanya bisa menyembunyikan satu bit di LSB-nya, ukuran data atau informasi yang bisa disembunyikan di dalam gambar adalah 3600/8 = 450 byte. Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya, dan tanda mulai dan berhenti.
3.3 Model Analisis Perangkat Lunak
Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal yang dilakukan di tahap awal. Pemodelan ini akan mempengaruhi pekerjaan–pekerjaan dalam rekayasa perangkat lunak. Pada tugas akhir ini menggunakan salah satu model perangkat lunak yaitu Pemodelan Fungsional dan Kamus Data.
3.3.1 Pemodelan Fungsional
(17)
Oleh karena itu, fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi GOST dan Steganografi LSB, secara garis besar terdapat 3 (tiga) fungsi yaitu pembentukan kunci, enkripsi pesan dan dekripsi pesan.
Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.
3.3.1.1 Data Flow Diagram ( DFD ) dan Spesifikasi Proses
DFD adalah suatu model logika data atau proses yang dibuat untuk menggambarkan darimana asal data dan kemana tujuan data yang keluar dari sistem, di mana data disimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data yang tesimpan dan proses yang dikenakan pada data tersebut. DFD menunjukkan hubungan antar data pada sistem dan proses pada sistem.
Ada 2 (dua) teknik dasar DFD yang umum dipakai yaitu Gane and Sarson dan Yourdon and De Marco. Pada tugas akhir ini menggunakan teknik yang digunakan Yourdon and De Marco (1996)
.
Untuk Diagram Konteks rekayasa perangkat lunak kriptografi algoritma GOST dan steganografi LSB dapat dilihat pada Gambar 3.1.
(18)
61
User
P.0
Proses Enkripsi File dan Penyisipan data pada
gambar Cipherteks Plainteks, key, Media_carrier File_terenkripsi, Media tersisipi
Gambar 3.1 Diagram Konteks Kriptografi GOST dan Steganografi LSB
Diagram Konteks tersebut menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Proses yang terjadi pada diagram konteks di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada Tabel 3.1 berikut ini:
Tabel 3.1 Spesifikasi Proses Diagram Konteks Level 0
No / Nama Proses Input Keterangan Proses Output
Proses 0 / Enkripsi File dan Penyisipan data pada gambar
Plainteks, Key,
Media_Carrier
Pada proses ini Plainteks ditransformasikan ke dalam bentuk Cipherteks ( File Terenkripsi dan gambar tersisipi )
Cipherteks
Dari Gambar 3.1, Proses 0 dapat dijabarkan menjadi proses yang lebih kecil. Proses 0 dibagi lagi ke dalam 3 (tiga) proses. Proses tersebut dapat dilihat pada Gambar 3.2 DFD Level 1 dari Proses P.0. Berikut ini adalah uraian proses yang terjadi
(19)
User P.1 Pemilihan Proses P.2 Kripto File P.3 Kripto Teks Steganografi Cipherteks Perintah Pilih Perintah Kripto File Perintah Kripto Teks Steganografi File Terenkripsi Media Tersisipi Plainteks
Plainteks, Media Carrier P.4 Proses Hashing SHA-1 Key_hashing File Key_hashing Teks Key + +
Gambar 3.2 DFD Level 1 Proses P.0
Dari DFD Level 1 Proses P.0 terdapat 3 (tiga) proses utama. Ke tiga proses ini merupakan proses yang sangat penting karena merupakan inti dari proses kriptografi GOST dan Steganografi LSB. Proses tersebut dapat diuraikan menggunakan spesifikasi proses pada tabel berikut ini.
Tabel 3.2 Spesifikasi Proses DFD Level 1 P.0
No / Nama Proses Input Keterangan Proses Output
Proses P.1/ Proses
Kripto File
Perintah Pilih Perintah untuk Memilih
proses yang ingin dilakukan
Perintah kripto file, Perintah Kripto teks Steganografi
Proses P.2/ Proses
Kripto File
Plainteks, Key, Perintah Kripto File
File akan dienkripsi dengan menggunakan algoritma GOST
File terenkripsi
Proses P.3/ Proses Kripto Teks Steganografi Plainteks, Key, Media Carrier, Perintah Kripto Teks Steganografi
Pada Proses ini, Teks terlebih dahulu dienkripsi dengan algoritma GOST dan disisipkan ke dalam gambar
Gambar Tersisipi Pesan
Proses P.4 / Proses Hashing SHA-1
Key Sebelum key diproses pada
algoritma GOST, dilakukan Hashing terhadap key
(20)
63
DFD level 1 proses P.2, Proses Kripto File selanjutnya diuraikan lagi menjadi beberapa proses dan dijelaskan pada DFD Level 2. DFD level 2 dari proses P.2 dapat dilihat pada Gambar 3.3.
P.2.4 Proses Cipher R dan L
32 bit
Key ( K0 – K7 ) 32 bit
P.2.8 Proses Penggabungan
Cipher R dan L Plainteks
Cipher R
Cipher L Pesan Terenkripsi P.2.1 Proses Penambahan bit-bit pengganjal
(padding bits )
P.2.2 Proses Pembentukan Key (K0 – K7)
P.2.5 Proses Subtitusi
Sbox (S0 – S7)
P.2.6 Proses circular left shift 11 Bit
Cipher R Mod
Cipher R sBox
P.2.7 Proses XOR Cipher L dan R
Cipher L Cipher R XoR
Cipher R CLS Key_hashing Key 256 bit
P.2.3 Proses operasi penjumlahan dalam
modulo 232
Cipher R XoR Perintah Kripto File
Gambar 3.3 DFD level 2 Proses Kripto File
DFD level 2 tersebut merepresentasikan proses yang terjadi pada algoritma GOST. Spesifikasi proses pada DFD level 2 proses Algoritma GOST, dapat dilihat pada tabel berikut:
(21)
Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses P.2
No/ Nama Proses Input Keterangan Proses Output
Proses P.2.1 / Penambahan bit-bit pengganjal (padding bits )
Key_hashing Proses Penambahan bit-bit pengganjal (padding bit ) menjadi key yang
panjangnya 256 bit
Key 256 bit
Proses P.2.2/
Pembentukan Kunci ( K0 – K7 )
Key 256 bit Proses Pembentukan Kunci ( K0 – K7 )
Key ( K0– K7 ) 32 bit
Proses P.2.3 / Operasi Penjumlahan Modulo 232
Key ( K0 – K7 ), Cipher kanan
Proses ini merupakan Operasi Penjumlahan Modulo 232 terhadap Blok Cipher kanan dan ( K0– K7).
Cipher kanan Mod
Proses P.2.4/
Pembentukan Cipher kanan dan Cipher kiri
Plainteks Proses Pembentukan Cipher kanan dan Cipher kiri masing-masing panjangnya 32 bit
Cipher kanan, Cipher kiri
Proses P.2.5/ Subtitusi S-Box ( S0 – S7 )
Cipher kanan Mod
Proses Subtitusi Cipher kanan Mod ke dalam 8 S-Box ( S0– S7 )
Cipher kanan S-Box
Proses P.2.6/ Circular Left Shift 11 bit
Cipher kanan S-Box
Proses Circular Left Shift 11 bit, pergeseran 11 bit ke kiri
Cipher kanan CLS
Proses P.2.7/ XoR Cipher kiri dan R
Cipher kanan CLS
Proses XoR Cipher kiri dan kanan
Cipher kanan XoR
Proses P.2.8 /
Penggabungan Cipher kiri dan R
Cipher kiri, Cipher kanan XoR
Proses Penggabungan Blok Cipher kiri dan kanan
Pesan Terenkripsi
DFD level 1 proses P.3, Proses Kripto Teks Steganografi selanjutnya diuraikan lagi menjadi beberapa proses dan dijelaskan pada DFD Level 2. Berikut ini adalah DFD level 2 dari proses P.3:
(22)
65 P.3.1 Proses Enkripsi Pesan Algoritma GOST P.3.2 Proses Inisialisasi Media P.3.3 Proses Penyisipan Bit kedalam media
Gambar Tersisipi Pesan
Pesan_enkripsi_lsb Gambar_fleck Plainteks, Key_hashing_Teks Media_Carrier ( gambar) Perintah Krito Teks
& Stega
Gambar 3.4 DFD level 2 Proses Kripto Teks & Steganografi
DFD level 2 Proses P.3 tersebut menggambarkan sistem proses terjadi pada algoritma LSB yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang.
Proses yang terjadi pada DFD Level 2 Proses P.3 sebelumnya dapat dijelaskan dengan menggunakan spesifikasi proses pada Tabel 3.4 berikut:
Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses P.3
No/ Nama Proses Input Keterangan Proses Output
Proses P.3.1/ Enkripsi Pesan Algoritma GOST
Plainteks,
Key_hashing_teks
Tahap ini pesan diproses terlebih dahulu yaitu dengan enkripsi data algoritma GOST
Pesan_enkripsi_lsb
Proses P.3.2/ inisialisasi Media
Media_Carrier Digunakan untuk mevalidasi
media gambar yang akan menjadi media carrier pesan steganografi dan penyisipan Fleck atau tanda pesan.
Gambar_fleck
Proses P.3.3/ Penyisipan bit ke dalam media
Gambar_fleck, Pesan_enkripsi_lsb
Pada proses ini pesan akan disisipkan bit per bit ke dalam media carrier
Gambar Tersisipi Pesan
(23)
Proses yang terjadi pada DFD Level 1 Proses P.0, Proses P.4 dapat diuraikan lagi yang akan disajikan ke dalam bentuk DFD Level 2 Proses P.4. Berikut ini adalah DFD Level 2 Proses P.4 yang terdiri dari 4 proses.
P.4.1 Proses Penambahan
bit-bit pengganjal (padding bits )
Key
P.4.2
Proses Penambahan nilai panjang Key semula Key_padding
P.4.3 Proses Inisialisasi penyangga ( buffer )
Key_tambah
P.4.4 Proses Pengelohan key dalam blok berukuran
512 bit.
Key_tambah, Buffer A,B,C,D,E
Key_hashing file
Key_hashing teks
Gambar 3.5 DFD Level 2 Proses Hashing SHA-1
Dari DFD Level 2 Proses P.4 di atas terdapat 4 proses utama yang terjadi pada proses SHA-1. Ke empat proses ini merupakan proses yang sangat penting karena merupakan inti dari proses hahsing menggunakan algoritma SHA-1. Proses tersebut dapat diuraikan pada tabel spesifikasi proses berikut ini:
(24)
67
Tabel 3.5 Spesifikasi Proses DFD Level 2 Proses P.4
No / Nama Proses Input Keterangan Proses Output
Proses P.4.1/ Penambahan bit-bit pengganjal (padding
bits )
Key Pada tahap ini, Key yang
panjangnya kurang dari 512 bit akan ditambahkan bit-bit
pengganjal (padding bits ) antara
1–512 bit hingga 448.
Key_padding
Proses P.4.2 / Penambahan nilai panjang key semula
Key_padding Pada Proses ini, Key yang telah
ditambahkan bit pengganjal ditambahkan lagi dengan panjang bit semula 64 bit agar pesan menjadi kelipatan 512 bit
Key_tambah
Proses P.4.3 /
Inisialisasi penyangga (buffer)
Key_tambah, Proses Inisialisasi penyangga
(buffer) ini dibutuhkan untuk menampung hasil transformasi yang terdiri 5 buah buffer A,B,C,D,E Key_tambah, Buffer A,B,C,D,E Proses P.4.4/ Pengelohan pesan dalam blok berukuran 512 bit
Key_tambah, Buffer A,B,C,D,E
Proses ini merupakan tahap akhir di mana pesan diolah dalam blok yang berukuran 512 bit yang terdiri atas 80 putaran
Key_hashing_f ile,
Key_hashing_t eks
3.3.2 Kamus Data
Kamus data merupakan suatu data yang disusun untuk memudahkan selama proses analisis dan desain. Selain suatu dokumen, kamus data mengumpulkan dan mengkoordinasi istilah-istilah data yang terdapat pada diagram alir. Penganalisis sistem harus hati-hati dalam mengkatalogkan istilah-istilah yang berbeda-beda yang menunjuk pada item yang sama. Kehati-hatian ini membantu dalam menghindari duplikasi, memungkinkan adanya komunikasi yang baik antara bagian-bagian yang saling berbagi basis data, dan membuat upaya pemeliharaan lebih bermanfaat. Kamus data juga bertindak sebagai standar tetap untuk elemen-elemen data.
(25)
Masukan-masukan kamus data bisa dibuat setelah diagram aliran data dilengkapi atau bisa juga disusun saat diagram aliran data sedang dikembangkan. Penganalisis sistem bisa saja membuat suatu diagram aliran data level 0 dan sekaligus membuat masukan-masukan data awal. Selanjutnya, sewaktu penganalisis sistem mengembangkan diagram level data menjadi diagram anak, penganalisis juga bisa memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran data pada diagram alir anak.
Berikut ini merupakan kamus data yang berisikan data yang digunakan pada diagram alir data mulai dari diagram konteks, DFD level 1,dan DFD level 2 dari masing-masing proses:
Tabel 3.6 Kamus Data
Nama Tipe Data Deskripsi
Plainteks Character, File Plainteks merupakan data yang akan
ditransformasikan menjadi Cipherteks.
Cipherteks Character, File Pesan hasil Enkripsi yang diinput user
yang akan didekripsi.
K0 – K7 Integer Kunci pada algoritma GOST
Cipher kiri Integer Hasil Pembagian Plainteks 32 bit kiri.
Cipher kanan Integer Hasil Pembagian Plainteks 32 bit kanan.
Cipher S-Box Integer Menampung nilai hasil penjumlhan 4 bit
dari masing-masing S-Box.
Key_hashing Character Menampung nilai hasil proses SHA-1
Cipher kanan Mod Integer Menampung nilai hasil operasi modulo
232 Cipher kanan dan K0 – K7.
Cipher_CLS Integer Menampung nilai hasil pergeseran 11 bit
ke kiri.
Key Character Kunci yang akan diproses pada hashing
SHA-1
Key_padding Integer Menampung nilai hasil proses
pengganjalan bit-bit.
Key_tambah Integer Menampung nilai dari hasil proses
Penambahan nilai panjang key semula.
Pesan_enkripsi_lsb Character Menampung pesan hasil enkripsi yang
terjadi pada proses steganografi
Gambar_fleck File Gambar hasil inisialisasi dan penyisipan
(26)
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.
(27)
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.
(28)
71
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
(29)
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.
(30)
73
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 )
(31)
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 )
(32)
75
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 program/simbol. 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.
(33)
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.
(34)
77
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:
(35)
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 length(key)/512
Blok[i] ← key[kelipatan 512] ; For i:=0 to n(blok) do
Begin
W[0-15] ← blok[i]; For j:= 16 to 79 do
(36)
79
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
(37)
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;
(38)
81
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 W0-15
Proses fungsi f dan k
0 ≤ 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
(39)
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;
(40)
83
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 232 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 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.
(41)
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
232
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
(42)
85
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) );
(43)
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 232 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 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.
(44)
87
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.
(45)
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.
(46)
89
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.
(47)
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
(48)
91
berbentuk *.G%st. Pada proses Steganografi input yang dibutuhkan adalah gambar bitmap 24 bit dan teks sebagai pesan yang akan disisipkan.
4.2.1 Tampilan Program Menu Utama
Pada tampilan program menu utama ini terdapat 3 (tiga) tombol utama sebagai tombol navigasi untuk membuka form yang lain ketika tombol tersebut diklik. Tombol tersebut adalah tombol GostCrypt, Steganografi, dan About. Tombol GostCrypt adalah tombol untuk membuka form Gost Crypto File. Tombol steganografi adalah tombol untuk membuka form menu pilih proses pada steganografi,yaitu proses tulis pesan dan baca pesan. Sedangkan tombol about jika diklik maka akan membuka form about. Berikut ini adalah tangkap layar dari tampilan program menu utama:
(49)
4.2.2 Tampilan Enkripsi Dekripsi File
Tampilan enkripsi dekripsi file ini berfungsi sebagai interface untuk mengenkripsi dekripsi file dan di namakan dengan form Gost Crypt File. Pada form ini terdapat 2 (dua) tombol utama yaitu tombol enkripsi dan tombol dekripsi. Untuk membuka file yang akan dipilih, pada form ini terdapat menu untuk pilih drive dan file list untuk memilih file. Berikut ini adalah tangkap layar dari tampilan enkripsi dan dekripsi file:
Tombol enkripsi Tombol dekripsi
}
File ListGambar 4.12 Tampilan Enkripsi Dekripsi Kripto File Pesan enkripsi dekripsi
(50)
93
4.2.2.1 Tombol Enkripsi
Tombol enrkipsi berfungsi untuk melakukan proses enkripsi terhadap file yang dipilih. Sebelum melakukan proses enkripsi, terlebih dahulu pilih file yang akan dienkripsi. Dengan menentukan drive di mana file berada dan memilih pada daftar file list, proses enkripsi dapat dilakukan. Ketika meng-klik tombol enkripsi akan muncul form untuk memasukan passInteger enkripsi. Form input passInteger dapat dilihat pada gambar di bawah ini:
Gambar 4.13 Input Key
Setelah Key dimasukkan file yang dipilih akan dienkripsi menjadi bentuk file *.G%st. File lama akan dihapus dan digantikan dengan file yang baru hasil enkripsi.
4.2.2.2 Tombol Dekripsi
Tombol dekripsi adalah tombol untuk mendeskripsi file yang telah dienkripsi. File yang akan didekripsikan adalah file dengan bentuk *.G%st. Dengan memilih file yang akan didekripsikan ketika akan mengdekripsi, akan muncul form input passInteger
(51)
untuk membuka enkripsi. Hasil dekripsi yang berbentuk file semula sebelum dienkripsikan. File lama akan dihapus dengan file yang baru.
4.2.3 Tampilan Menu Steganografi
Pada form selanjutnya adalah proses steganografi. Untuk melakukan proses steganografi ini ada 2 (dua) tombol navigasi yaitu tombol tulis pesan dan baca pesan. Tombol tulis pesan adalah tombol untuk membuka form proses tulis pesan ke dalam gambar. Sedangkan tombol baca pesan adalah tombol untuk membuka form proses baca pesan dari gambar. Berikut ini adalah tangkap layar dari tampilan menu steganografi:
Gambar 4.14 Tampilan Menu Steganografi
4.2.4 Tampilan Tulis Pesan
Tampilan tulis pesan adalah interface untuk menulis pesan dan menyisipkan ke dalam gambar. Pada form ini terdapat 7 tombol utama, yaitu tombol tulis pesan, tombol cek
(52)
95
gambar, tombol batal, tombol cek enkripsi, tombol save picture, tombol open, tombol new. 7 tombol ini mempunyai proses yang berbeda–beda. Tombol tulis pesan berfungsi untuk melakukan proses penyisipan pesan ke dalam gambar. Tombol cek gambar berfungsi untuk mengecek gambar apakah ada pesan dalam gambar. Tombol batal adalah untuk membatalkan semua proses yang akan dilakukan. Tombol cek enkripsi adalah tombol untuk mengecek enkripsi teks yang akan disisipkan ke dalam gambar. Tombol save picture berfungsi untuk menyimpan gambar yang telah tesisipi pesan. Sedangkan tombol open berfungsi untuk membuka gambar. Tombol new untuk memperbaharui semua proses. Berikut ini adalah tangkap layar tampilan tulis pesan:
Gambar 4.15 Tampilan Tulis Pesan Kripto Teks & Steganografi
4.2.5 Tampilan Baca Pesan
(53)
mempunyai proses yang berbeda–beda. Tombol baca pesan berfungsi untuk melakukan proses pengambilan pesan dari gambar yang tersisipi. Tombol cek gambar berfungsi untuk mengecek gambar apakah ada pesan dalam gambar. Tombol save picture berfungsi untuk menyimpan gambar yang telah tesisipi pesan. Sedangkan tombol open berfungsi untuk membuka gambar. Tombol new untuk memperbaharui semua proses. Berikut ini adalah tangkap layar tampilan baca pesan:
(54)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pembahasan dan evaluasi dari bab-bab sebelumnya dan teori yang ada, maka dapat ditarik kesimpulan sebagai berikut:
1. Dengan teknik steganografi, meskipun gambar yang sudah disisipi teks yang dienkripsi tetap masih bisa dibuka.
2. Kualitas gambar yang dihasilkan tergantung dari besarnya ukuran teks yang disisipkan. Semakin besar ukuran teks yang disisipkan semakin kelihatan perubahan yang terjadi pada gambar.
5.2 Saran
Aplikasi steganografi gambar yang dibangun ini masih banyak keterbatasannya. Untuk pengembangan program yang dihasilkan dalam penulisan skripsi ini, dapat diberikan beberapa saran sebagai berikut:
1. Gambar yang digunakan dalam aplikasi ini hanya bisa menggunakan format bitmap (.bmp) sebagai wadah penampung teks yang dienkripsi, untuk pengembangannya agar dapat digunakan format citra lain, seperti .jpeg, .png, dan format yang lainnya.
(55)
2. Pesan yang dienkripsi dan didekripsi pada aplikasi yang dibangun adalah pesan teks yang disembunyikan ke dalam gambar, untuk pengembangannya agar dapat digunakan format pesan lain, dan wadah penampung dapat digunakan format lain, contohnya seperti pesan teks disembunyikan dalam file musik ataupun file video.
(56)
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi (cryptography) berasal dari Bahasa Yunani yaitu “cryptos” artinya rahasia (secret) sedangkan “graphein” artinya tulisan (writing). Jadi, kriptografi berarti tulisan rahasia. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita (Schneier, 1996).
Kata “seni” dalam definisi tersebut berasal dari fakta sejarah bahwa pada masa–masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara–cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan mempunyai nilai estetika tersendiri, sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan.
Selain pengertian tersebut, kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (A. Menezes, P. van Oorschot and S. Vanstone, 1997). Tidak semua aspek keamanan informasi ditangani oleh kriptografi.
(57)
Dengan pesatnya perkembangan kriptografi, muncul istilah modern cryptography atau kriptografi modern, yaitu suatu teknik cipher di mana sekumpulan fungsi matematika atau yang disebut algoritma yang digunakan untuk mengkonversi sekumpulan bit ke dalam bentuk lain. File original yang disebut plaintext , mungkin dapat berisikan biasanya teks, gambar, suara atau apa saja yang dapat direpresentasikan ke dalam sebuah komputer.
2.2 Steganografi
Steganografi berbeda dengan kriptografi, di mana pihak ke tiga dapat mendeteksi adanya data (ciphertext), karena hasil dari kriptografi berupa data yang berbeda dari bentuk aslinya dan biasanya datanya seolah-olah berantakan, tetapi dapat dikembalikan ke bentuk semula. Ilustrasi mengenai perbedaan kriptografi dan steganografi dapat dilihat pada Gambar 2.1.
(58)
17
Kata steganografi (steganography) berasal dari bahasa Yunani steganos, yang
artinya “tersembunyi atau terselubung”, dan graphein, “menulis” sehingga kurang
lebih artinya "menulis (tulisan) terselubung". Teknik ini meliputi banyak sekali metoda komunikasi untuk menyembunyikan pesan rahasia. Metoda ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar (Munir, 200 ).
Pengertian lain dari Steganografi, yaitu sebuah teknik penyembunyian pesan rahasia, yang biasanya sebuah pesan yang disisipi (diekstrak) ke dalam suatu media sebagai pembawa pesan (Long Truong, 200 ).
Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada cryptography) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Dengan menggunakan komputer, metode steganograpi sangat luas penggunaannya karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di antaranya:
(59)
2. Format audio: wav, voc, mp3, dan lain-lain. 3. Format lain: teks file, html, pdf, dan lain-lain.
Steganografi memanfaatkan keterbatasan sistem indera manusia seperti mata dan telinga. Dengan adanya keterbatasan inilah, metoda steganografi ini dapat diterapkan pada berbagai media digital. Hasil keluaran dari steganografi ini memiliki bentuk persepsi yang sama dengan bentuk aslinya, tentunya persepsi di sini sebatas oleh kemampuan indera manusia, tetapi tidak oleh komputer atau perangkat pengolah digital lainnya.
Jaringan komunikasi data
---
Gambar 2.2 Proses steganografi Data
Media
Penyisipan
data Media yang telah
disisipi data
Data
Media
Ekstraksi data
Media yang telah disisipi data
(60)
19
2.3 Sejarah Kriptografi
Kriptografi atau yang sering dikenal dengan sebutan ilmu penyandian data, adalah suatu bidang ilmu dan seni (science and art) yang bertujuan untuk menjaga kerahasiaan suatu pesan yang berupa data dari akses oleh orang-orang atau pihak-pihak lain yang tidak berhak sehingga tidak menimbulkan kerugian. Bidang ilmu Kriptografi ini semula hanya popular di bidang militer dan bidang intelijen untuk menyandikan pesan-pesan panglima perang kepada pasukan yang berada di garis depan, akan seiring dengan semakin berkembangnya teknologi utamanya teknologi informasi dan semakin padatnya lalu lintas informasi yang terjadi tentu saja semakin menuntut adanya suatu komunikasi data yang aman, bidang ilmu ini menjadi semakin penting. Sekarang bidang ilmu ini menjadi salah satu isu riset yang tidak habis-habisnya diteliti dengan melibatkan banyak peneliti.
Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Sekitar tahun 400 SM, yaitu pada zaman Yunani kuno. Kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkapen dibungkus dengan batang kayu, sistem ini disebut Scytale.
(61)
Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf alfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat).
Bangsa Arab menemukan cryptanalysis karena kemahirannya dalam bidang matematika, statistik, dan linguistik. Karena setiap orang muslim harus menambah pengetahuannya, mereka mempelajari peradaban terdahulu dan mendekodekan tulisan-tulisannya ke huruf-huruf Arab. Pada tahun 815, Caliph al-Mamun mendirikan House of Wisdom di Baghdad yang merupakan titik pusat dari usaha-usaha translasi.
Pada 1790, Thomas Jefferson mengembangkan alat enkripsi dengan menggunakan tumpukan yang terdiri dari 26 disk yang dapat diputar secara individual. Pesan dirakit dengan memutar setiap disk ke huruf yang tepat di bawah batang berjajar yang menjalankan panjang tumpukan disk. Kemudian, batang berjajar diputar dengan sudut tertentu, A, dan huruf-huruf di bawah batang adalah pesan yang terenkripsi. Penerima akan menjajarkan karakter-karakter cipher di bawah batang berjajar, memutar batang kembali dengan sudut A dan membaca pesan plaintext.
Sistem disk digunakan secara luas selama perang sipil US. Federal Signal Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan oleh
(62)
21
Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkode dan mendekodekan sinyal-sinyal bendera di antara unit-unit.
Mesin kriptografi mekanik yang disebut Hagelin Machine dibuat pada tahun 1920 oleh Boris Hagelin di Scockholm, Swedia. Di US, mesin Hagelin dikenal sebagai M-209.
Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US
MI-8 yang dikenal sebagai “Black Chamber”. MI-8 menjebol kode-kode sejumlah negara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang yang telah disadap kepada sekretaris negara US. Departemen negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaannya, Yardley menerbitkan buku The American Black Chamber, yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru. Karena kepeloporannya dalam bidang ini, Yardley dikenal sebagai
“Bapak Kriptografi Amerika”.
Dewasa ini bidang ilmu kriptografi memiliki kemungkinan aplikasi yang sangat luas, mulai dari bidang militer, telekomunikasi, jaringan komputer, keuangan dan perbankan, pendidikan dan singkatnya suatu kerahasiaan data amat diperlukan, disitulah kriptografi memegang peranan penting. Produk-produk yang menggunakan kriptografi sebagai dasarnya-pun cukup beragam, mulai dari kartu ATM, E-Commerce, secure e-mail dan lain-lain.
(63)
2.4 Sejarah Steganografi
Steganografi sudah dikenal oleh bangsa Yunani. Herodotus, penguasa Yunani, mengirim pesan rahasia dengan menggunakan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk membawa pesan rahasia dibalik rambutnya.
Bangsa Romawi mengenal steganografi dengan menggunakan tinta tak-tampak (invisible ink) untuk menuliskan pesan. Tinta tersebut dibuat dari campuran sari buah, susu, dan cuka. Jika tinta digunakan untuk menulis, maka tulisannya tidak tampak. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas tersebut. Saat ini di negara-negara yang melakukan penyensoran informasi, steganografi sering digunakan untuk menyembunyikan pesan-pesan melalui gambar (gambars), video, atau suara (audio).
Steganografi sudah digunakan sejak dahulu kala sekitar 2500 tahun yang lalu untuk kepentingan politik, militer, diplomatik, serta untuk kepentingan pribadi sebagai alat. Beberapa contoh penggunaan steganografi pada masa lampau di antaranya:
1. Pada tahun 480 sebelum masehi, seseorang berkebangsaan Yunani yaitu Demaratus mengirimkan pesan kepada polis Sparta yang berisi peringatan mengenai penyerangan Xerxes yang ditunda. Teknik yang digunakan adalah dengan menggunakan meja yang telah diukir kemudian diberi lapisan lilin
(64)
23
untuk menutupi pesan tersebut, dengan begitu pesan dalam meja dapat disampaikan tanpa menimbulakn kecurigaan oleh para penjaga.
2. Pada abad ke 5 sebelum Masehi, Histaiacus mengirimkan pesan kepada Aristagoras Miletus untuk memberontak terhadap raja Persia. Pesan disampaikan dengan cara mencukur kepala pembawa pesan dan mentato kepalanya dengan pesan tersebut. Kemudian saat rambutnya tumbuh kembali, pembawa pesan dikirimkan dan pada tempat tujuan rambutnya kembali digunduli dan pesan akan terbaca.
3. Pada perang dunia II, Jerman menggunakan microdots untuk berkomunikasi. Penggunaan teknik ini biasa digunakan pada microfilm chip yang harus diperbesar sekitar 200 kali.
4. Pada perang dunia II, Amerika Serikat menggunakan suku Indian Navajo sebagai media untuk berkomunikasi.
Pada abad 20, steganografi mengalami perkembangan yang sangat pesat. Selama berlangsung perang Boer, Lord Boden Powell (pendiri gerakan kepanduan) yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer, untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupu-kupu agar gambar-gambar peta sasaran tersebut terkamuflase.
Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Sesungguhnya prinsip dasar dalam steganografi lebih dikonsentrasikan pada kerahasian komunikasinya
(65)
2.5 Tujuan Kriptografi
Dalam teknologi informasi, telah dan sedang dikembangkan cara untuk menangkal berbagai bentuk serangan semacam penyadapan dan pengubahan data yang dikirimkan. Salah satu cara yang ditempuh mengatasi masalah ini ialah dengan menggunakan kriptografi yang menggunakan transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak yang tidak berhak mengakses. Transformasi ini memberikan penyelesaian pada 2 (dua) macam masalah keamanan data, yaitu masalah privasi (privacy) dan keotentikan (authenticatioan). Privasi mengandung arti bahwa data yang dikirimkan hanya dapat dimengerti informasinya oleh penerima yang sah atau berhak. Sedangkan keotentikan mencegah pihak ke tiga untuk mengirimkan data yang salah atau mengubah data yang dikirimkan.
Adapun tujuan sistem kriptografi adalah sebagai berikut:
1. Confidentiality
Memberikan kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi.
2. Data Integrity
Memberikan jaminan untuk tiap bagian bahwa pesan tidak akan mengalami perubahan dari saat data dibuat/dikirim sampai dengan saat data tersebut dibuka.
3. Non-repudiation
Sebuah cara untuk membuktikan suatu dokumen datang dari seseorang yang menyangkal memiliki dokumen tersebut.
(66)
25
4. Authentication
Memberikan dua buah layanan. Pertama mengidentifikasikan keaslian suatu pesan dan memberikan jaminan keotentikannya. Ke-dua, menguji identitas seseorang yang akan memasuki sistem.
(Sumber: A. Menezes, P. van Oorschot and S. Vanstone, 1997).
2.6 Tujuan Steganografi
Steganografi mempunyai tujuan untuk menyembunyikan pesan rahasia ke dalam sebuah media yang dapat direpresentasikan komputer sehingga pesan rahasia itu dapat terkamuflase agar orang lain tidak menyadari keberadaan pesan rahasia tersebut.
2.7 Terminologi Dasar Kriptografi
Kriptografi merupakan kumpulan teknik untuk mengenkode data dan pesan sedemikian sehingga data dan pesan tersebut dapat disimpan dan ditransmisikan dengan aman. Berikut ini beberapa terminologi dasar dari kriptografi serta hal-hal yang berkaitan dengan terminologi tersebut:
1. Kriptografi dapat digunakan untuk meningkatkan keamanan komunikasi meskipun komunikasi tersebut dilakukan dengan media komunikasi yang sangat tidak aman (misalnya Internet). Kriptografi juga dapat digunakan untuk melakukan enkripsi file-file sensitif, sehingga orang lain tidak dapat mengartikan data-data yang ada. 2. Kriptografi dapat digunakan untuk memberikan jaminan integritas data serta
(67)
3. Dengan menggunakan kriptografi, sangat mungkin untuk meverifikasi asal data dan pesan yang ada menggunakan tanda tangan digital.
4. Pada saat menggunakan metoda kriptografi, hanya kunci sesuai yang harus tetap dijaga kerahasiaannya. Algoritma, ukuran kunci dan format file dapat dibaca oleh siapapun tanpa mempengaruhi keamanan.
2.8 Algoritma & Kunci
Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Algoritma kriptografi ini bekerja dalam kombinasi dengan menggunakan kunci (key) seperti kata, nomor atau frase tertentu. Algoritma kriptografi selalu terdiri dari dua bagian yaitu fungsi enkripsi dan dekripsi. Bila keamanan algoritma tergantung pada kerahasiaan algoritma bekerja, maka algoritma tersebut dikatakan algoritma terbatas (terbatas kemampuannya). Algoritma terbatas mempunyai sejarah yang menarik, namun sayangnya tidak cukup baik untuk digunakan pada masa sekarang ini. Sejumlah besar pengguna (yang tidak dalam satu grup) tidak dapat menggunakannya bersama-sama, sehingga setiap kali seorang pengguna meninggalkan grupnya, pemakai lain dalam grup tersebut harus mengganti algoritma agar algoritma yang mereka gunakan tidak diketahui kelompok lain. Bila salah satu anggota tanpa sengaja menampakkan algoritma keluar grupnya, maka grup tersebut harus mengganti algoritmanya.
Kriptografi modern menyelesaikan masalah ini dengan hanya merahasiakan kunci (key) saja tanpa harus menyembunyikan algoritmanya sendiri. Kunci (K) dapat
(68)
27
juga disebut sebagai passInteger. Keamanan enkripsi hanya tergantung pada kunci, dan tidak tergantung apakah algoritmanya dilihat orang lain atau tidak. Rentang kemungkinan nilai kunci ini disebut keyspace.
2.9 Pengelompokkan Algoritma Kriptografi
Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokkan menjadi dua bagian (Scheiner, 1996) (Kurniawan, 2004) (Munir, 2006) (Menezes, van Oorschot dan Vanstone, 1997) , yaitu:
1. Algoritma Simetri (Algoritma Konvensional)
Gambar 2.3 Skema Algoritma Simetri
2. Algoritma Asimetri (Algoritma Kunci Publik)
ENKRIPSI DEKRIPSI
Plaintext Ciphertext Plaintext
KUNCI PUBLIK KUNCI RAHASIA
ENKRIPSI DEKRIPSI
Plaintext Ciphertext Plaintext
(69)
2.9.1 Algoritma Simetris Vs Algoritma Asimetris
Baik kriptografi simetri maupun kriptografi asimetri (kunci publik), ke duanya mempunyai kelebihan dan kelemahan sebagai berikut:
A. Algoritma Simetris
Adapun kelebihan dari kriptografi simetri:
1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.
2. Ukuran kunci simetri relatif pendek.
3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.
4. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat.
5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
Adapun Kelemahan kriptografi simetri:
1. Kunci simetri harus dikirim melalui saluran yang aman. Ke dua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini.
(70)
29
B. Algoritma Asimetris
Kelebihan dari kriptografi kunci-publik (asimetri), sebagai berikut:
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci kunci privat sebagaimana pada sistem simetri.
2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
Kelemahan kriptografi kunci-publik (asimetri), sebagai berikut:
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks).
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, cipherteks tidak memberikan informasi mengenai otentikasi pengirim.
5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya
(71)
memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang menjadi dasar pembangkitan kunci.
2.10 Algoritma GOST
GOST merupakan blok cipher dari bekas Uni Sovyet (yang sekarang dikenal dengan Rusia ), yang merupakan singkatan dari "Gosudarstvennyi Standard" atau Standar Pemerintah, standar ini bernomor 28147-89 oleh sebab itu metoda ini sering disebut sebagai GOST 28147-89.
GOST merupakan blok cipher 64 bit dengan panjang kunci 256 bit. Algoritma ini mengiterasi algoritma enkripsi sederhana sebanyak 32 putaran (round). Untuk mengenkripsi pertama-tama plainteks 64 bit dipecah menjadi 32 bit bagian kiri, L dan 32 bit bagian kanan, R. Subkunci (subkey) untuk putaran i adalah Ki. Pada satu
putaran ke-i operasinya adalah sebagai berikut:
Li = Ri-1
Ri = Li-1 xor f(Ri-1,Ki)
Sedangkan pada fungsi f mula-mula bagian kanan data ditambah dengan subkunci ke-i modulus 232. Hasilnya dipecah menjadi delapan bagian 4 bit dan setiap bagian menjadi input s-box yang berbeda. Di dalam GOST terdapat 8 buah s-box, 4 bit pertama menjadi s-box pertama, 4 bit kedua menjadi s-box ke dua, dan seterusnya. Output dari 8 s-box kemudian dikombinasikan menjadi bilangan 32 bit kemudian
(72)
31
bilangan ini dirotasi 11 bit ke kiri. Akhirnya hasil operasi ini di-xor dengan data bagian kiri yang kemudian menjadi bagian kanan dan bagian kanan menjadi bagian kiri (swap). Pada implementasinya nanti rotasi pada fungsi f dilakukan pada awal saat inisialisasi sekaligus membentuk s-box 32 bit dan dilakukan satu kali saja sehingga lebih menghemat operasi dan dengan demikian mempercepat proses enkripsi/dekripsi (Schneier, 1996).
Gambar 2.5 Diagram Alir Fungsi f (metoda Gost)
Subkunci dihasilkan secara sederhana yaitu dari 256 bit kunci yang dibagi menjadi delapan 32 bit blok: k1, k2, …, k8. Setiap putaran menggunakan subkunci
Li - 1 Ri - 1
Substitusi Kotak-S
Pergeseran sirkuler ke kiri 11 bit
Ri
Li
Ki
(73)
tidak menentukan bagaimana menghasilkan s-box sehingga ada spekulasi bahwa sebagian organisasi di (eks) Sovyet mempunyai box yang baik dan sebagian diberi s-box yang buruk sehingga mudah diawasi/dimata-matai.
Gambar 2.6 Subkey yang digunakan GOST pada setiap putaran
Berikut urutan logika proses pembentukan S-Box:
Gambar 2.7 Diagram Alir Cipher kanan
R (32 bits) K (32 bits)
MOD 232
+
4 bits 4 bits 4 bits 4 bits 4 bits 4 bits 4 bits 4 bits
S1 S2 S3 S4 S5 S6 S7 S8
SHIFT 11 BIT
(1)
i ABSTRAK
Aktivitas pertukaran informasi yang sangat besar dewasa ini memicu adanya pengembangan sistem informasi untuk bisa menjaga kualitas pengiriman informasi. Kualitas yang dimaksud mengarah kepada keamanan sewaktu pengiriman informasi sehingga informasi yang dipertukarkan benar-benar tidak mengalami intervensi dari pihak lain yang tidak mempunyai hak akan informasi tersebut.
Steganografi adalah suatu teknik untuk menyembunyikan suatu informasi yang rahasia atau sensitif tanpa terlihat agar tidak terlihat seperti semestinya. Data rahasia disembunyikan dengan cara disisipkan pada suatu media seperti image, audio, dan video sehingga tidak terlihat bahwa dalam media tersebut disembunyikan suatu pesan informasi.
Untuk itu penulis menggabungkan metode enkripsi algoritma GOST dengan metode steganografi LSB. Steganografi dengan menggunakan LSB merupakan teknik yang sederhana dan sangat sesuai bagi pemula dibidang steganografi. Kriptografi dengan menggunakan algoritma GOST yang memberikan manfaat bahwa informasi dalam keadaan tidak dapat dibaca dan steganografi yang memberikan manfaat bahwa informasi tidak dapat diketahui keberadaanya merupakan perpaduan yang saling melengkapi.
(2)
IMPLEMENTASI ALGORITMA GOST PADA FILE SERTA PENYEMBUNYIAN TEXT TERENKRIPSI KE DALAM GAMBAR
DENGAN ALGORITMA LSB
SKRIPSI
Oleh
DINI RIZKI FAJRIZA 070823015
PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2012
(3)
i ABSTRAK
Aktivitas pertukaran informasi yang sangat besar dewasa ini memicu adanya pengembangan sistem informasi untuk bisa menjaga kualitas pengiriman informasi. Kualitas yang dimaksud mengarah kepada keamanan sewaktu pengiriman informasi sehingga informasi yang dipertukarkan benar-benar tidak mengalami intervensi dari pihak lain yang tidak mempunyai hak akan informasi tersebut.
Steganografi adalah suatu teknik untuk menyembunyikan suatu informasi yang rahasia atau sensitif tanpa terlihat agar tidak terlihat seperti semestinya. Data rahasia disembunyikan dengan cara disisipkan pada suatu media seperti image, audio, dan video sehingga tidak terlihat bahwa dalam media tersebut disembunyikan suatu pesan informasi.
Untuk itu penulis menggabungkan metode enkripsi algoritma GOST dengan metode steganografi LSB. Steganografi dengan menggunakan LSB merupakan teknik yang sederhana dan sangat sesuai bagi pemula dibidang steganografi. Kriptografi dengan menggunakan algoritma GOST yang memberikan manfaat bahwa informasi dalam keadaan tidak dapat dibaca dan steganografi yang memberikan manfaat bahwa informasi tidak dapat diketahui keberadaanya merupakan perpaduan yang saling melengkapi.
(4)
KATA PENGANTAR
Puji dan syukur ke hadirat Allah SWT, karena berkat rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir yang berjudul: “Implementasi Algoritma GOST pada file serta penyembunyian text terenkripsi ke dalam gambar dengan algoritma LSB”. Salawat beriring salam tak lupa penulis persembahkan kepada junjungan umat Islam, Nabi Muhammad SAW.
Pada kesempatan ini penulis mengucapkan terima kasih kepada Bapak Drs. Bambang Irawan, M.Sc selaku dosen pembimbing I dan Bapak Drs. Marwan Harahap, M.Eng selaku dosen pembimbing II yang dengan penuh sabar, arif dan bijaksana memberikan bimbingan, petunjuk dan arahan serta dorongan kepada penulis untuk menyelesaikan tugas akhir ini.
Penulis juga mengucapkan terima kasih kepada orang tua penulis, Bapak Drs. H Muchrizal Leman dan Hj Sri Bulan Lubis atas doanya. Tak lupa ucapan terima kasih kepada abang penulis, Muhammad Yusrizal dan adik penulis, Muhammad Riza Akbar yang menjadi penyemangat penulis dalam pengerjaan tugas akhir ini. Terima kasih kepada keluarga dan teman-teman penulis yang tidak dapat penulis sebutkan satu persatu yang telah banyak memberikan semangat dan perhatian serta toleransi sehingga tugas akhir ini selesai.
Penulis menyadari masih banyak kekurangan dalam tulisan ini, namun penulis mengharapkan tugas akhir ini bisa bermanfaat dan memberikan inspirasi untuk pengembangan selanjutnya.
Medan, Februari 2012 Hormat saya,
(5)
iii DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... ii
DAFTAR ISI ... iii
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 5
1.3 Batasan Masalah... 5
1.4 Tujuan Penelitian ... 5
1.5 Manfaat Penelitian ... 6
1.6 Tinjauan Pustaka ... 6
1.7 Metode Penelitian... 13
BAB 2 LANDASAN TEORI ... 15
2.1 Kriptografi ... 15
2.2 Steganografi ... 16
2.3 Sejarah Kriptografi ... 19
2.4 Sejarah Steganografi ... 22
2.5 Tujuan Kriptografi ... 24
2.6 Tujuan Steganografi ... 25
2.7 Terminologi Dasar Kriptografi ... 25
2.8 Algoritma & Kunci ... 26
2.9 Pengelompokkan Algoritma Kriptografi... 27
2.9.1 Algoritma Simetris Vs Algoritma Asimetris ... 28
2.10 Algoritma GOST ... 30
2.11 Fungsi Hash ... 33
2.11.1 Karakteristik Fungsi Hash ... 34
2.11.2 Secure Hash Algorithm ( SHA ) ... 34
2.12 Cryptanalisys ... 37
2.13 Steganografi Gambar ... 39
BAB 3 ANALISIS DAN PEMODELAN PERANGKAT LUNAK ... 50
3.1 Analisis Masalah ... 50
3.2 Penyelesaian Masalah ... 51
3.2.1 Proses Enkripsi Algoritma GOST ... 52
(6)
3.2.3 Proses Steganografi LSB... 57
3.3 Model Analisis Perangkat Lunak ... 59
3.3.1 Pemodelan Fungsional ... 59
3.3.2 Kamus Data ... 67
BAB 4 PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK .... 69
4.1 Perancangan ... 69
4.1.2 Perancangan Antar Muka Pemakai ... 70
4.1.3 Perancangan Struktur Data ... 75
4.1.4 Perancangan Prosedural ... 76
4.2 Implementasi Perangkat Lunak ... 90
4.2.1 Tampilan Program Menu Utama ... 91
4.2.2 Tampilan Enkripsi Dekripsi File ... 92
4.2.3 Tampilan Menu Steganografi ... 94
4.2.4 Tampilan Tulis Pesan ... 94
4.2.5 Tampilan Baca Pesan ... 95
BAB 5 KESIMPULAN DAN SARAN... 97
5.1 Kesimpulan ... 97
5.2 Saran ... 97