Implementasi Algoritma GOST pada file serta penyembunyian text terenkripsi ke dalam gambar dengan algoritma LSB

(1)

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 List

Gambar 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