BAB 3 ANALISIS DAN PERANCANGAN
3.1.Analisis Perancangan Steganografi dan Kriptografi. 3.1.1. Algoritma Steganografi EOF Metode EOF merupakan sebuah metode yang diadaptasi dari metode penanda akhir file (end of file) yang digunakan oleh sistem operasi windows. Dalam sistem operasi windows, jika ditemukan penanda EOF pada sebuah file, maka sistem akan berhenti melakukan pembacaan pada file tersebut. Prinsip kerja EOF menggunakan karakter / simbol khusus ctrl-z yang diberikan pada setiap akhir file. Ctrl-z merupakan sebuah substitute character (karakter substitusi) berupa sebuah karakter ASCII dengan nilai 26. Karakter ini biasanya digunakan pada system operasi DOS untuk menandakan akhir dari sebuah penginputan data. Dengan berkembangnya sistem operasi windows, penggunaan karakter ini dikembangkan untuk menandakan akhir dari sebuah file. EOF memiliki sebuah karakteristik unik yang tidak dimiliki karakter ASCII lainnya. Karakter ini merupakan satu-satunya karakter yang bersifat redundant bits (sebagian informasi yang terdapat didalam file yang jika dihilangkan tidak akan menimbulkan kerusakan yang signifikan setidaknya bagi indera manusia), dimana setiap penambahan karakter ini pada sebuah file tidak akan mengubah nilai atau ukuran file tersebut. Sesuai dengan perkembangan teknologi, khususnya dibidang steganography, EOF digunakan sebagai salah satu metode dalam melakukan penyembunyian data digital kedalam data digital lainnya.
35
Pemilihan EOF sebagai salah satu metode steganografi ini didasari oleh halhal berikut ini: •
Karakteristik Unik EOF Steganography merupakan sebuah teknik yang berkaitan erat dengan redundant bits. Sebagian besar teknik steganography yang berkembang memiliki sifat redundant bits agar hasil steganografi yang dihasilkan tidak merubah data awal yang digunakan. EOF memiliki karakteristik ini pada karakter ctrl-z yang digunakannya.
EOF
menggunakan
redundant
bits
sebagai
tempat
menyembunyikan pesan pada saat dilakukan kompresi data, dan kemudian menggunakan kelemahan indera manusia yang tidak sensitif sehingga seakanakan tidak ada perbedaan yang terlihat antara sebelum atau sesudah pesan disisipkan.Sebagai contoh, akan disisipkan sebuah pesan pada sebuah citra digital dengan dimensi 120 x 160 pixel. Maka pesan akan ditempatkan pada baris ke 121 sampai selesai sesuai dengan panjang dari pesan yang disisipkan. Setiap baris akan memetakan pesan sebanyak 160 karakter (sesuai dengan ukuran citra) hingga seluruh pesan disisipkan seluruhnya. •
Kerahasiaan Payload Dalam steganografi, payload (informasi yang disembunyikan) harus
terjaga
kerahasiaannya. Karena sistem operasi akan berhenti membaca isi sebuah file pada saat menemukan karakter ctrl-z, maka pesan yang disisipkan tidak akan pernah terbaca. Hal ini akan menghasilkan tingkat kerahasiaan yang tinggi pada pesan tersebut.
Berikut ini adalah contoh flowchart encode dalam steganografi dengan algoritma EOF. Flowchart akan menggambarkan hasil file steganografi dengan
36
metode end of file dalam aplikasi, pemasukkan data dilakukan seperti merge yang dihubungkan dengan bytes version sebagai penanda dengan urutan input : uncompressed/compressed , encrypted/unencrypted , message/file. Proses decode pun dilakukan dengan cara yang sama seperti encode nya.
Gambar 3.1. Flowchart Encode Steganografi EOF
37
Prinsip kerja EOF menggunakan karakter / simbol khusus ctrl-z yang diberikan pada setiap akhir file dan digunakan pada system operasi untuk menandakan akhir dari sebuah penginputan data. Karakteristik inilah yang menyebabkan ctrl-z dipilih sebagai penanda dari sebuah akhir file karena sifat null (kosong) yang dimilikinya. Adapun algoritma dari metode EOF ini adalah sebagai berikut : 1. Baca informasi file, tentukan dimana posisi karakter ctrl-z berada. 2. Tandai posisi ctrl-z sebagai awal baris penyisipan pesan. 3. Sisipkan pesan dimulai dari posisi ctrl-z hingga akhir pesan. 4. Sisipkan ctrl-z kedua pada akhir pesan.
Dengan menyisipkan sebuah pesan setelah karakter ctrl-z (end of file), pada saat file tersebut dieksekusi, pesan yang disisipkan tidak akan terbaca oleh sistem. Hal ini disebabkan oleh karena sistem hanya akan membaca isi dari sebuah file dimulai dari karakter awal file tersebut hingga sistem menemukan karakter ctrl-z (end of file).
3.1.2. Metoda Kriptografi AES (Advanced Encryption Standard) Advance Encryption Standard (AES) adalah teknik algoritma kriptografi yang juga dikenal dengan sebutan Rijndael. Standar enkripsi ini diadopsi sebagai standar yang digunakan di AES, dan akhirnya diseluruh penjuru dunia. AES adalah penerus dari Data Encryption Standard (DES). AES mulai diperkenalkan pada tahun 2001, dan mulai efektif dipergunakan sebagai standar pada pertengahan tahun 2002. Mulai pada tahun 2006, AES adalah algoritma paling populer, karena dapat ditarik
38
kesimpulan bahwa DES telah tergantikan oleh AES dan telah dianggap kurang aman. hal itu disebabkan karena panjang kunci yang terlalu pendek. DES saat ini hanya dipakai untuk pendidikan, sedangkan AES masih digunakan untuk menjaga keamanan
komputer.
Seiring
dengan
berkembangnya
teknologi
komputer,
berkembang pula kriptografi keamanannya. Algoritma AES Rijndael mendukung panjang kunci 128 bit sampai 256 bit. Panjang kunci dan ukuran blok dapat dipilih secara independen. Karena AES menetapkan bahwa ukuran blok harus 128 bit, dan panjang kunci harus 128, 192, dan 256 bit, maka dikenal AES-128, AES-192, AES- 256. Setiap blok dienkripsi dalam sejumlah putaran tertentu bergantung pada panjang kuncinya. Tabel 3.1. Perbandingan AES 128, 192, 256 bits
Perbandingan Jumlah Key
Besar Block
Jumlah Round
(Nk words )
(Nb words)
(NR)
AES 128
4
4
10
AES 192
6
4
12
AES 256
8
4
14
Catatan: 1 word = 32 bit.
Dengan panjang kunci 128-bit, maka terdapat 2128 = 3,4 x 1038 kemungkinan kunci. Jika digunakan 1 juta komputer yang masing-masing memiliki kemampuan mencoba 1 juta kunci per detik, maka akan diperlukan waktu 5,4 trilyun tahun untuk mencoba seluruh kemungkinan kunci. Inilah yang menyebabkan mengapa AES belum dipecahkan kodenya oleh sekuriti manapun.
39
Tabel 3.2. Evaluasi Perbandingan DES dengan AES
Author
Definisi
1.
panjang blok
panjang kunci
jumlah round
DES adalah sebuah algoritma enkripsi 1.
sandi blok kunci
panjang
kunci
DES 56bit.
dengan ukuran blok
1. 64‐bit dan ukuran
1.
panjang DES
2.
panjang
DES terdiri dari
kunci 16round
kunci 56‐bit.
Coppersmith,
64bit
AES
panjang AES
128bit,192bit,at
128bit
au 256bit
2. Don
2.
AES adalah standar
2.
AES terdiri dari 10,12 dan 14
enkripsi
dengan
round. kunci‐simetris yang diadopsi
oleh
pemerintah Amerika Serikat
1.
DES melakukan 16 round yang melibatkan
1. 1.
Mardianto, Is
DES
merupakan
algoritma
yang
pertama
kali
panjang DES jenis
dikembangkan dan
adalah
hanya
digunakan
S‐DES
2.
5fungsi
utama
yaitu
fungsi
kunci DES jenis
initial
S‐DES
permutation,
adalah
10bit
substitusi
kunci AES,
permutasi,
mode1=128bit,
permutasi,
mode2=192bit,
kompleks
8bit
untuk educational.
dan
fx
kembali, inverse
mode3=256bit
initial permutation. 2.
AES mode round,
1
=10
40 mode
2
=12
3
=14
round, mode round
1.
DES
is
the
algorithms described
in
this standard specifies
both
enciphering
1.
and
deciphering
Federal Information Processing
2.
Standards
operations
based
on
binary
a
of 64 binary
AES algorithm is
digits.
a symmetric block
(FIPS) Publication
1.
data in blocks
encrypt
of 128 bits
and
DES 16 rounds
randomly
2.
AES rounds :
‐ key length 128 bits = 10 rounds
the algorithm
‐ key length 192 bits = 12 rounds
2.
decrypt information and capable
1.
used directly by
AES decrypt
cipher that can
of 56 bits are
generated and
DES consists
number (key).
DES key consists
of
using cryptographic
AES algorithm is capable of using cryptographic
‐ key length 256 bits = 14
keys of 128, 192, and 256 bits
keys of 128, 192, and 256 bits to encrypt and decrypt data in blocks of 128 bits.
Seperti pada DES, Rijndael menggunakan substitusi dan permutasi, dan sejumlah putaran. Untuk setiap putarannya, Rijndael menggunakan kunci yang berbeda. Kunci setiap putaran disebut round key. Garis besar algoritma Rijndael yang beroperasi blok 128-bit adalah sebagai berikut:
41
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: •
SubByte: substitusi byte dengan menggunakan tabel substitusi (Sbox).
•
ShiftRow: pergeseran baris-baris array state secara wrapping.
•
MixColumn: mengacak data di masing-masing kolom array state.
•
AddRoundKey: melakukan XOR antara state sekarang dengan round key.
3. Final round: proses untuk putaran terakhir: •
ByteSub.
•
ShiftRow.
•
AddRoundKey.
Gambar 3.2. Proses Flowchart Enkripsi AES.
42
Add Round Key Proses penggabungan ini menggunakan operasi XOR untuk setiap byte dari subkey dengan byte data state awal. Untuk setiap tahap, subkey dibangkitkan dari kunci utama dengan menggunakan proses key schedule. Setiap subkey berukuran sama dengan state yang bersangkutan.
Gambar 3.3. Proses Add Round Key SubBytes Proses SubBytes adalah operasi yang akan melakukan substitusi tidak linear dengan cara mengganti setiap byte state dengan byte pada sebuah tabel yang dinamakan tabel SBox. Sebuah tabel S-Box terdiri dari 16x16 baris dan kolom dengan masing-masing berukuran 1 byte.
43
Tabel 3.2. Tabel S-Box
Gambar 3.4. Proses Sub Byte Shift Rows Proses Shift Rows akan beroperasi pada tiap baris dari tabel state. Proses ini akan bekerja dengan cara memutar byte-byte pada 3 baris terakhir (baris 1, 2, dan 3) dengan jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak 1 kali, baris 2 akan diputar sebanyak 2 kali, dan baris 3 akan diputar sebanyak 3 kali. Sedangkan baris 0 tidak akan diputar.
44
Gambar 3.5. Proses Shift Rows MixColumns Proses MixColumns akan beroperasi pada tiap kolom dari tabel state. Operasi ini menggabungkan 4 bytes dari setiap kolom tabel state dan menggunakan transformasi linier Operasi Mix Columns memperlakukan setiap kolom sebagai polinomial 4 suku dalam Galois field dan kemudian dikalikan dengan c(x) modulo (x4+1), dimana c(x)=3x3+x2+x+2. Kebalikkan dari polinomial ini adalah c(x)=11x3+13x2+9x+14. Operasi MixColumns juga dapat dipandang sebagai perkalian matrix. Langkah MixColumns dapat ditunjukkan dengan mengalikan 4 bilangan di dalam Galois field oleh matrix berikut ini.
Operasi penjumlahan di atas dilakukan dengan operasi XOR.
45
Gambar 3.6. Proses Mix – Colomn
3.2. Perancangan Program Aplikasi 3.2.1. Spesifikasi Rumusan Perancangan Perancangan program aplikasi ini berdasarkan karateristik sebagai berikut: a. Procedural Programming. Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Dapat didefinisikan secara singkat yaitu sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data, masing-masing dapat diberi nama dan harga.Instruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah pemroses tunggal. Beberapa instruksi menetukan instruksi berikutnya yang akan dieksekusi. Data diperiksa dan dimodifikasi secara sekuensial pula. Program dalam paradigma ini didasari pada strukturisasi informasi di dalam memori dan manipulasi dari informasi yang disimpan tersebut.
46
b. Object Oriented Programming. Pemrograman berorientasi objek merupakan metode yang relatif baru untuk melakukan perancangan atau rekayasa perangkat lunak. Tujuan metode ini adalah untuk meningkatkan produktivitas pemrogram dengan meningkatkan extensibiltas dan penggunaan kembali perangkat lunak serta untuk mengontrol biaya dan kompleksitas perawatan perangkat lunak. Tujuan utama dari pengembangan perangkat lunak atau program berorientasi objek, dapat dijelaskan sbb: •
Mempersingkat waktu dan menurunkan biaya pengembangan rekayasa perangkat lunak.
•
Menurunkan biaya perawatan perangkat lunak.
•
Pemrograman berorientasi objek memberikan landasan yang sangat berguna untuk pembuatan prototype sistem secara cepat.
Object Oriented Programming memiliki sifat sifat sebagai berikut: 1. Inheritance Disebut juga pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. 2. Encapsulation. Diartikan sebagai pembungkus, dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
47
3. Polymorphism. Suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object 3.2.2. Menu Hirarki. Hirarki menu pada program aplikasi ini dapat dilihat pada gambar berikut
Gambar 3.7. Hierarki Menu
48
3.2.3. Use Case Diagram.
Gambar 3.8. Use Case Diagram proses penyisipan dan penerimaan pesan steganografi
49
3.2.4. Sequence Diagram.
Gambar 3.9. Sequence Diagram Proses Steganografi
50
3.2.5. Class Diagram
Gambar 3.10. Class Diagram Proses Steganografi
51
3.3. Perancangan Tampilan 1. Perancangan ini dibuat melalui java 1.7.0 dengan menggunakan editor Netbeans 7.0.1. 2. Metoda Steganografi yang digunakan yaitu End Of File (EOF). 3. Metoda Kriptografi yang digunakan yaitu Advance Encryption Standard (AES). 4. Format Input Message yaitu berupa data teks atau dokumen, sedangkan format pesan atau file yang disisipkan bisa berupa data teks, suara dan video yaitu dengan akhiran format sebagai berikut : •
Format Teks : “.txt”, “.pdf”, “.doc”.
•
Format Gambar : ".bmp", ".jpg", ".gif", ".tif", “png”.
•
Format Suara : ".mp3", ".wav", ".wma".
•
Format Video ".mpg", ".3gp", ".flv".
5. Format file yang disisipkan dapat menggunakan kompresi zip untuk menekan besaran output file. Perancangan program aplikasi dibagi menjadi enam proses yaitu : -
Embed Message Bagian ini untuk menyisipkan pesan teks dengan kode sandi (password) dan dienkripsi ke dalam data teks lainnya, proses ini akan menghasilkan data teks yang sama namun dengan tambahan pesan enkripsi didalamnya.
-
Embed File Bagian ini untuk menyisipkan atau menempelkan pesan atau file dengan kode sandi (password) ke dalam media data digital gambar, suara maupun video dengan standard format yang telah dijelaskan sebelumnya. Proses ini akan menghasilkan data file yang nantinya akan disebut stegofile.
52
-
Retrive Message Bagian ini akan membaca sandi password dan mengambil pesan rahasia yang telah disisipkan sebelumnya di dalam data yang berupa teks atau dokumen.
-
Retrieve File Bagian ini akan membaca sandi password dan mengambil data atau file dari stegafile yang telah disisipkan sebelumnya dan membuka file atau data tersebut.
-
Menu Help Bagian ini akan menjelaskan penggunaan dari bagian Menu dan sub-Menu.
-
Menu About Bagian ini akan menyertakan detail tambahan dari aplikasi pemograman seperti nama pembuat, nama universitas, nama dosen pembimbing, tahun pembuatan, dll.
Gambar 3.11. Rancangan menu dan sub-menu aplikasi program
53
3.3.1. Rancangan Layar Main Layar ini merupakan layar pembuka yang berfungsi sebagai penghubung dari semua layar yang ada pada perangkat lunak. Rancangan layar main dapat dilihat pada gambar 3.7. berikut ini.
Gambar 3.12. Tampilan Layer Main 3.3.2. Rancangan Layar Embed Message
Gambar 3.13. Tampilan Layer Embed Message
54
3.3.3. Rancangan Layar Embed File
Gambar 3.13. Tampilan Layer Embed File 3.3.4. Rancangan Layar Retrieve Message
Gambar 3.14. Tampilan Layer Retrieve Message
55
3.3.5. Rancangan Layar Retrieve File
Gambar 3.15. Tampilan Layer Retrieve File. 3.3.6. Rancangan Layar Help
Gambar 3.16. Tampilan Layer Help
56
3.3.7. Rancangan Layar About
Gambar 3.17. Tampilan Layer About