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 hal-
hal 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 seakan-
akan 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
(Nk words )
Besar Block
(Nb words)
Jumlah Round
(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 panjang blok panjang kunci jumlah round
Coppersmith,
Don
1. DES adalah sebuah
algoritma enkripsi
sandi blok kunci
dengan ukuran blok
64‐bit dan ukuran
kunci 56‐bit.
2. AES adalah standar
enkripsi dengan
kunci‐simetris yang
diadopsi oleh
pemerintah
Amerika Serikat
1. panjang DES
64bit
2. panjang AES
128bit
1. panjang kunci
DES 56bit.
2. panjang kunci
AES
128bit,192bit,at
au 256bit
1. DES terdiri dari
16round
2. AES terdiri dari
10,12 dan 14
round.
Mardianto, Is
1. DES merupakan
algoritma yang
pertama kali
dikembangkan dan
hanya digunakan
untuk educational.
panjang DES
jenis S‐DES
adalah 8bit
1. kunci DES jenis
S‐DES adalah
10bit
2. kunci AES,
mode1=128bit,
mode2=192bit,
mode3=256bit
1. DES melakukan
16 round yang
melibatkan
5fungsi utama
yaitu fungsi
initial
permutation,
substitusi dan
permutasi,
permutasi,
kompleks fx
kembali, inverse
initial
permutation.
2. AES
mode 1 =10
round,
40
mode 2 =12
round,
mode 3 =14
round
Federal
Information
Processing
Standards
(FIPS)
Publication
1. DES is the
algorithms
described in
this standard
specifies both
enciphering and
deciphering
operations based
on a binary
number (key).
2. AES algorithm is
a symmetric block
cipher that can
encrypt and
decrypt information
and capable of
using cryptographic
keys of 128, 192,
and 256 bits to
encrypt and
decrypt data in
blocks of 128 bits.
DES consists
of 64 binary
digits.
1. AES decrypt
data in blocks
of 128 bits
1. DES key consists
of 56 bits are
randomly
generated and
used directly by
the algorithm
2. AES algorithm is
capable of using
cryptographic
keys of 128, 192,
and 256 bits
1. DES 16 rounds
2. AES rounds :
‐ key length 128 bits =
10 rounds
‐ key length 192 bits =
12 rounds
‐ key length 256 bits =
14
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 (S-
box).
• 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