KEAMANAN DATA
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
HERRU REDYANTO
10109106
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
v
DAFTAR ISI ...v
DAFTAR GAMBAR...ix
DAFTAR TABEL...xv
DAFTAR SIMBOL...xx
DAFTAR LAMPIRAN...xxx
BAB 1 PENDAHULUAN ... 1
1.1. Latar Belakang Masalah ... 1
1.2. Rumusan Masalah ... 2
1.3. Maksud dan Tujuan ... 3
1.4. Batasan Masalah ... 3
1.5. Metodologi Penelitian ... 4
1.5.1. Metode Pengumpulan Data... 4
1.5.2. Metode pembangunan perangkat lunak ... 4
1.6. Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 6
2.1. Keamanan Informasi ... 7
2.2. Citra digital ... 8
2.3. Pengukuran Error Citra ... 9
2.4. Steganografi ... 10
2.4.1. Sejarah Steganografi ... 13
2.4.2. Konsep dan Terminologi Steganografi ... 14
2.4.3. Teknik Steganografi... 15
2.4.4. Steganografi Pada Citra Digital ... 16
2.5. Random Pixel Positioning (RPP) Steganografi ... 17
vi
2.6.2.1. Add Round Key ... 22
2.6.2.2. Sub Bytes ... 22
2.6.2.3. Shift Rows ... 23
2.6.2.4. Mix Columns ... 23
2.7. Unified Modelling Language (UML) ... 24
2.8. Teknologi Java ... 28
BAB 3 ANALISIS DAN PERANCANGAN ... 31
3.1 Analisis Sistem ... 31
3.1.1 Analisis Masalah ... 31
3.1.2 Analisis Algoritma ... 31
3.1.2.1 Analisis Algoritma Advanced Encryption Standard(AES) ... 32
3.1.2.1.1Analisis Penjadwalan Kunci ... 33
3.1.2.1.2Analisis Proses Enkripsi Algoritma (AES) ... 35
3.1.2.2 Analisis Metode Random Pixel Positioning (RPP) ... 37
3.1.2.2.1Analisis Prose Penyisipan/Embedding ... 37
3.1.2.2.2Analisis Proses Pengungkapan / Ekstrasi ... 40
3.1.3 Analisis Kebutuhan non-Fungsional ... 41
3.1.3.1 Analisis Pengguna ... 41
3.1.3.2 Analisis Kebutuhan Perangkat Keras ... 41
3.1.3.3 Analisis Perangkat Lunak ... 42
3.1.4 Analisis Kebutuhan Fungsional ... 43
3.1.4.1 Use Case Diagram... 43
3.1.4.2 Skenario Use Case ... 43
3.1.4.3 Activity Diagram ... 49
vii
3.2.1.1.1Perancangan pesan menu penyisipan ... 65
3.2.1.1.2Perancangan pesan menu ekstraksi ... 67
3.2.1.2 Perancangan Jaringan Semantik ... 68
3.2.2 Perancangan Method ... 68
3.2.2.1 Perancangan Method Penyisipan ... 69
3.2.2.2 Perancangan Method Ekstraksi ... 70
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM...73
4.1 Implementasi Sistem ... 70
4.1.1 Implementasi Perangkat Keras ... 70
4.1.2 Implementasi Perangkat Lunak ... 70
4.1.3 Implementasi Antarmuka... 71
4.2 Pengujian Sistem ... 73
4.2.1 Rencana Pengujian... 73
4.2.2 Pengujian White Box ... 73
4.2.3 Pengujian Black Box ... 82
4.2.4 Pengujian Program... 83
4.2.5 Pengujian Keamanan Pesan ... 84
4.2.6 Pengujian Kualitas Citra ... 88
4.2.7 Kesimpulan Hasil Pengujian... 95
BAB 5 KESIMPULAN DAN SARAN...97
5.1 Kesimpulan ... 97
110
DAFTAR PUSTAKA
[1] Farrell, Joyce. 2012. Java Programming. Course Technology, United State of America.
[2] Kim, David, dan Michael G Solomon. 2012. Fundamentals of Information
Systems Security. Jones & Bartlett Learning, United State of America
[3] Morkel, T., JHP. Eloff, dan MS. Olivier. An Overview of Image Steganography.
Information and Computer Security Architecture (ICSA) Research Group,
Department of Computer Science, University of Pretoria, Pretoria.
[4] Munir, Rinaldi. 2004. Pengolahan Citra Digital. Informatika, Bandung.
[5] Munir, Rinaldi. 2006. Kriptografi. Informatika, Bandung.
[6] A.S., R. and Shalahuddin, M. (2011) Modul Pembelajaran Rekayasa Perangkat
Lunak (Terstruktur dan Berorientasi Objek), Bandung: Modula.
[7] Parmenter, D. (2010) Mengembangkan, Mengimplementasikan dan
Menggunakan Key Performance Indicators, Jakarta: PPM.
[8] Rifki sadikin, 2001. Kriptografi, untuk keamanan jaringan. ISBN
978-979-293128-0, keamanan komputer
[9] Widodo, Prabowo Pudjo. Herlawati. 2011. Menggunakan UML. Informatika
iii
memberikan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan laporan
tugas akhir ini. Laporan tugas akhir ini merupakan syarat untuk menyelesaikan studi
jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer
Indonesia dengan judul “PEMBANGUNAN APLIKASI STEGANOGRAFI
PADA CITRA MENGGUNAKAN METODE RANDOM PIXEL POSITIONING
(RPP) DAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES) 256
BITUNTUK KEAMANAN DATA”.
Laporan tugas akhir ini tidak akan berarti apa-apa tanpa bantuan dan
dukungan semua pihak yang dengan segenap hati dan rasa tulus yang telah
memberikan semua hal yang penulis butuhkan, untuk itu penulis ingin mengucapkan
terima kasih kepada:
1. Allah SWT yang telah melimpahkan rahmat dan karunia-Nya.
2. Kedua orang tua yaitu Ayah Rochmanto dan Ibu Elly Yuliah dan
saudara-saudariku yaitu Adhitia Tristiana, Aas sukaesih, Oktaviena Dwi Citra, Dyas Tama
Sumantri, Tedy Yana, Neneng Warningsih, Ani Cahyani, Endang dan adik
kecilku Helmi Dwi Redyanto tercinta yang selalu memberikan dorongan
semangat dan doa yang tidak pernah ada habisnya, serta cinta dan kasih sayang
yang menjadi kekuatan bagi penulis.
3. Bapak Irawan afrianto, S.T., M.T. selaku ketua program studi teknik informatika
Universitas Komputer Indonesia.
4. Bapak Iskandar Ikbal S.T., M.Kom., selaku dosen pembimbing yang telah
memberikan bimbingan, pengarahan dan masukan bagi penulis.
5. Bapak Irfan Maliki, S.T,. M.T. selaku dosen reviewer yang telah memberikan
iv masukan dan saran kepada penulis
8. Seluruh dosen pengajar di UNIKOM khususnya pada Program Studi Teknik
Informatika yang telah memberikan ilmu dan pengetahuannya
9. Kepada Agus Winarto Pratama, Rian, Suhendi, Bayu Rizki Pratama, Hilman
Anugrah, Harry Ginanjar, Cinoy Setianto, Rahmat Setiawan, Ken Kinanti, yang
telah membantu dalam pengerjaan penelitian ini
10.Teman-teman seperjuangan dari kelas IF-3 2009 seluruhnya yang telah
bersama-sama melewati manis pahitnya masa perjalanan kuliah.
11.Semua pihak yang terlibat yang telah ikut membantu dalam penulisan laporan ini
baik secara langsung maupun tidak langsung.
Dalam penulisan laporan ini, penulis telah berusaha semaksimal mungkin,
walaupun demikian penulis menyadari bahwa laporan tugas akhir ini masih jauh dari
sempurna. Oleh karena itu penulis menerima segala masukan, saran dan kritik yang
membangun untuk perbaikan dimasa mendatang. Akhir kata, semoga laporan ini
dapat berguna khususnya bagi penulis dan untuk seluruh pihak yang membutuhkan
pada umumnya.
Bandung, 28 Agustus 2014
Nama Lengkap : Herru Redyanto
Jenis Kelamin : Laki- laki
Tempat/ Tanggal Lahir : Tangerang, 09 Agustus 1990
Kewarganegaraan : Indonesia
Agama : Islam
Status : Belum Menikah
Golongan Darah : O
Alamat : Perumahan mustika tigaraksa blok C14/17 RT04/08
tangerang
No. Telp/ HP : 081399830748
Email : heru_indra@yahoo.com
B. PENDIDIKAN
1995-2002 : SD NEGERI COGREG 1
2002-2005 : SMP NEGERI 2 TIGARAKSA
2005-2008 : SMK NEGERI 3 YUPPENTEK
2009-2014 : UNIVERSITAS KOMPUTER INDONESIA
Demikian biodata saya yang dibuat dengan sebenar-benarnya dalam keadaan sadar
dan tanpa paksaan.
Bandung, 20 Agustus 2014
1
1.1. Latar Belakang Masalah
Berdasarkan sejarah panjang mengenai metode kerahasiaan informasi, tujuan
utama dari kegiatan tersebut adalah melindungi informasi agar tidak dapat dideteksi
oleh pihak yang tidak berkepentingan. Seiring perkembangan teknologi, metode
steganografi digunakan pula untuk aktivitas-aktivitas pengabsahan sebuah
dokumen. Sistem kearsipan paling banyak menggunakan metode ini. Penggunaan
steganografi merupakan teknologi yang sangat bermanfaat dalam pengamanan
dokumen. Steganografi berbeda dengan kriptografi atau metode keamanan
informasi lainnya, steganografi yaitu menyembunyikan informasi atau pesan
kedalam media lain seperti citra digital, teks, suara atau video sehingga tidak
menimbulkan kecurigaan orang lain. Steganografi membutuhkan dua properti,
yaitu informasi dan media penampung[4]. Media penampung yang banyak
digunakan untuk menyembunyikan informasi yaitu citra digital. Penyisipan
informasi pada media citra digital dilakukan pada bit-bit pixel yang terdapat pada
citra. Penggunaan citra digital sebagai media penampung mempunyai kelebihan
karna indra pengelihatan manusia memiliki keterbatasan tersebut manusia sulit
membedakan citra digital yang asli dengan citra yang telah disisipi pesan rahasia.
Steganografi mempunyai banyak metode yang dapat digunakan, namun
metode yang banyak digunakan saat ini masih mempunyai kekurangan dalam hal
kualitas, kapasitas, dan ketahanan[3]. Metode – metode yang digunakan dalam pembuatan steganografi mempunyai kriteria – kriteria yaitu kapasitas media penampung menyimpan informasi (payload capacity), kualitas media penampung
yang telah disisipi pesan (fidelity), ketahanan terhadap manipulasi (robustness) dan
tidak menimbulkan kecurigaan pada media penampung yang telah disisipi pesan
(Unsuspicious file)[2]. Kriteria – kriteria ini harus dipenuhi oleh metode yang
digunakan dalam pembuatan steganografi, agar media yang menampung informasi
penampung. Sehingga jika media penampung dapat diungkap oleh orang yang tidak
bertanggung jawab, maka informasi yang tersembunyi akan langsung diketahui.
Metode Random Pixel Positioning (RPP) merupakan salah satu metode yang
dapat digunakan dalam pembuatan steganografi. Dari beberapa metode
steganografi yang digunakan antara lain metode Random Pixel Positioning (RPP).
metode tersebut yaitu merubah file gambar maupun file sisipan ke dalam bentuk bit
dan menyisipkan bit-bit dari file sisipan tersebut ke dalam bit-bit pada file gambar.
Random pixel positioning (RPP) merupakan pengembangan dari metode LSB yakni
dengan mengacak posisi bit-bit tersebut dalam bit-bit gambar sehingga tidak mudah
dilacak. Salah satu enkripsi yang dapat digunakan yaitu algoritma Advanced
Encryption Standard(AES) adalah blockchiptertext yang dapat mengenkripsi
(encipher) dan dekripsi (decipher) yaitu mengubah pesan asli (plaintext) menjadi
pesan dalam bentuk tersandi (ciphertext). Proses enkripsi akan menghasilkan data
tersandi dan hanya dibuka atau dibaca oleh pihak penerima yang memiliki kinci
(key) sedangkan proses dekripsi adalah mengembalikan data tersandi menjadi
bentuk data asli. Baik teknik kriptografi dan steganografi sama-sama memiliki
kekurangan, oleh karena itu menggabungkan kedua teknik enkripsi ini
dimaksudkan akan menambah tingkat keamanan pada saat pertukaran data
menyisipkan pesan rahasia bahkan untuk mengklaim autentifikasi dari suatu media
citra digitalyang dibuat.
Berdasarkan uraian tersebut, maka pada tugas akhir ini akan dilakukan
“PEMBANGUNAN APLIKASI STEGANOGRAFI PADA CITRA DIGITAL MENGGUNAKAN METODE RANDOM PIXEL POSITIONING (RPP) DAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)256BIT UNTUK KEAMANAN DATA” agar data yang bersifat rahasia aman dan tidak mudah dilihat oleh pihak ketiga.
1.2. Rumusan Masalah
Metode dan algoritma yang digunakan untuk menyisipkan pesan pada citra
digital, maka pada permasalahan ini adalah bagaimana pesan yang disisipkan harus
disisipkan dengan metode random pixel positioning dan algoritma advanced
encryption standard.
Perumusan masalah dapat dilihat melalui point-point berikut ini
1. Bagaimana cara penyisipan pesan ke citra digital menggunakan metode dan
algoritma yang digunakan ?
2. Bagaimana cara mendapatkan pixel-pixel yang telah disisipi pesan sehingga
pesan dapat di-ekstrak kembali ?.
1.3.Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas
akhir ini adalah untuk membangun aplikasi steganografi pada citra digital
menggunakan metode Random Pixel Positioning (RPP) dan algoritma advanced
encryption standard (AES)256 bits untuk keamanan data.
Tujuan yang akan dicapai dalam penelitian ini adalah:
1. Melakukan pengujian terhadap keamanan pesan menggunakan aplikasi
steganalysis yaitu StegSpy2.1
2. Untuk mengetahui besar pesan yang dapat disembunyikan kedalam citra digital
menggunakan metode random pixel positioning (RPP).
3. Untuk mengetahui kualitas citra yang telah disisipi pesan menggunakan metode
random pixel positioning (RPP).
4. Untuk mengetahui ketahanan pesan pada citra yang telah disisipi pesan.
1.4.Batasan Masalah
Batasan masalah yang ditentukan pada pembangunan aplikasi steganografi
menggunakan metode Random Pixel Positioning (RPP) dan algoritma advanced
encryption standard (AES)256 untuk keamanan data ini adalah sebagai berikut :
1. Media penampug pesan hanya file citra berformat *.bmp *.png *.gif dan *.jpg.
2. Pesan yang akan disisipkan kedalam citra tidak hanya file teks saja, tapi juga
dapat berupa gambar dengan jenis yaitu:
a. Pesan teks : *.txt, *.doc, *.docx, *.pdf dan *.xls
3. Menggunakan algoritma advanced encryption standard (AES)256bits untuk
enkripsi pesan yang akan disisipkan kedalam citra.
4. Hal – hal yang akan diujikan pada aplikasi yang dibangun yaitu: a. Besar pesan yang dapat disembunyikan kedalam citra
b. Kualitas citra yang telah disisipi pesan yang dinyatakan dalam PSNR.
c. Ketahanan terhadap manipulasi citra yang telah disisipi pesan (robustness).
5. Aplikasi yang dibangun berbasis desktop.
6. Perangkat lunak yang digunakan untuk pembangunan aplikasi yaitu :
a. Sistem operasi yang digunakan yaitu windows.
b. Pengkodean dan desain aplikasi menggunakan Java NetBeans7.
1.5.Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini menggunakan
metode analis deskriptif yang terdiri dari dua metode yaitu metode pengumpulan
data, dan metode pembangunan perangkat lunak.
1.5.1. Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penulisan tugas akhir ini
adalah menggunakan metode studi literatur. Studi literatur merupakan
pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan
– bacaan yang ada kaitannya dengan judul penelitian. Data yang akan dikumpulkan dari literatur dan pustaka yaitu mengenai steganografi pada citra digital, metode
random pixel positioning (RPP) dan algoritma Advanced encryption standard
(AES)256bits.
1.5.2. Metode pembangunan perangkat lunak
Metode pembangunan perangkat lunak ini menggunakan metode waterfall
seperti pada gambar 1.1 yang terdiri dari beberapa tahap, yaitu:
1. Requirement Definition
Requirement Definition merupakan tahapan analis terhadap apa saja yang
dibutuhkan oleh system yang akan di bangun. Analis yang dilakukan meliputi
2. System and Software Design
System and Software Design merupakan tahap melakukan perancangan
terhadap keseluruhan sistem perancangan yang dilakukan yaitu perancangan
antar muka dari sistem yang dibangun.
3. Implementation and Unit Testing
Implementation and Unit Testing merupakan tahap merubah perancangan dan
analis yang dilakukan sebelumnya kedalam kode pemograman yang
digunakan. Tahap ini juga dilakukan unit testing untuk mengetahui apakah
telah sesuai dengan kebutuhan sistem.
4. Integrasi and System Testing
Integrasi and System Testing merupakan dimana sistem yang telah dikodekan
dilakukan pengujian. Pengujian ini dilakukan untuk mengetahui apakah
terdapat kesalahan pada sistem yang telah dikodekan pada tahap
implementation atau tidak.
5. Operation and Maintenance
Operation and Maintenance merupakan tahap perawatan jika terjadi kesalahan
pada system merawatan yang dilakukan yaitu pengkoreksi jika terjadi
kesalahan, menambah fungsionalitas dan requiretment sistem.
Gambar 1. 1 Metode Waterfall [1]
1.6.Sistematika Penulisan
Sistematika penulisan skripsi pada penelitian ini disusun untuk memberikan
gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas
BAB 1. PENDAHULUAN
Bab ini menguraikan tentang latar belakang permasalahan, mencoba
merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan
penelitian, yang kemudian diikuti dengan pembatasan masalah, asumsi, serta
sistematika penulisan.
BAB 2. LANDASAN TEORI
Bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan
topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis
permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah
dilakukan sebelumnya termasuk sintesisnya.
BAB 3. ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas mengenai sub-sub sistem yang di uraikan dari sistem utama
dengan tujuan untuk mengetahui cara kerja dan interaksi dari tiap sub sistem dalam
fungsinya untuk mencapai tujuan sistem. Didalamnya terdapat analis terhadap
proses penjadwalan kunci, proses enkripsi, proses dekripsi, proses penyisipan dan
proses ekstrasi, selain itu terdapat juga kebutuhan fungsional dan nonfungsional
dari sistem, perancangan antar muka untuk aplikasi yang akan dibangun sesuai
dengan hasil analis yang telah dibuat.
BAB 4. IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas tentang implementasi dari aplikasi yang dibangun.
Implementasi dilakukan berdasarkan analis dan perancangan yang telah dilakukan,
kedalam bahasa pemograman tertentu. Hasil dari implementasi, kemudian
dilakukan, kedalam bahasa pemograman tertentu. Hasil dari implementasi,
kemudian dilakukan pengujian apakah aplikasi telah sesuai seperti yang
diharapkan.
BAB 5. KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan berasarkan hasil penelitian yang telah
dilakukan dan masukan-masukan yang dapat digunakan untuk pengembang
7
Landasan teori menjelaskan dasar-dasar teori yang digunakan dalam penelitian
yang dilakukan pada tugas akhir. Teori-teori yang digunakan meliputi keamanan
informasi, citra digital, Pengukuran error pada citra, steganografi, kriptografi,
Unified Modelling Language (UML), dan teknologi java.
2.1.Keamanan Informasi
Keamanan informasi merupakan salah satu aspek yang penting dalam
berkomunikasi, namun keamanan seringkali dilupakan ketika melakukan
komunikasi. Informasi yang jatuh ke tangan yang salah dapat menimbulkan
masalah yang besar seperti penipuan, pencurian, pemerasan dan masih banyak lagi
masalah yang akan ditimbulkan.
Keamanan informasi mempunyai beberapa aspek yang harus dipenuhi, agar
informasi dapat terjamin keaslian dan keamanannya. Aspek-aspek umum tersebut
meliputi confidentiality, integrity, authentication, availability dan non
repudiation[2].
1. Confidentiality
Confidentiality atau kerahasiaan yaitu keamanan informasi harus dapat
menjamin kerahasiaan dari informasi. Salah satu cara yang dapat dilakukan yaitu
dengan membatasi hanya orang yang mempunyai hak saja yang dapat membaca
atau mengubah suatu informasi.
2. Integrity
Integrity berhubungan dengan keaslian informasi, integrity yaitu menjamin
keutuhan dan keaslian informasi yang dikirimkan, agar informasi tidak dirusak atau
diubah oleh orang yang tidak berhak. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
3. Authentication
Authentication yaitu usaha atau metode untuk mengetahui keaslian dari
informasi, dan memastikan bahwa informasi diterima oleh orang yang benar. Untuk
menjaga otentikasi terhadap informasi, dapat digunakan digital signature untuk
memastikan keaslian informasi.
4. Availability
Availability atau ketersediaan data yaitu keamanan informasi harus dapat
menjamin bahwa data atau informasi harus tersedia ketika akan digunakan. Untuk
menjamin ketersediaan data, sistem harus mempunyai cadangan data jika data
tersebut hilang.
5. Non Repudiation
Non repudiation yaitu menjamin bahwa seorang pengirim informasi tidak dapat
menyangkal keaslian dari informasi yang dikirimnya. Sehingga penerima informasi
dapat memastikan bahwa informasi yang diterima merupakan informasi yang asli.
2.2.Citra digital
Citra secara harafiah, adalah gambar pada bidang dua dimensi (dwimatra).
Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue)
dari intensitas cahaya pada bidang dwimatra. Sedangkan citra digital adalah citra
yang dapat diolah oleh komputer[4].
Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M
kolom dan N baris, dimana perpotongan antara kolom dan baris disebut pixel, yaitu
elemen terkecil dari sebuah citra. Sebuah citra digital dapat ditulis dalam bentuk
fungsi 2.1 berikut.
……….…….
Terdapat banyak format file dari citra digital, format file citra ini terdiri dari
beberapa jenis dan setiap jenisnya memiliki karakteristik masing- masing. Beberapa
contoh format umum, pada citra digital yaitu Bitmap (BMP), Joint Photographic
Group Experts (JPEG), GraphicsInterchange Format (GIF), dan Portable Network
Graphics (PNG).
1. Bitmap (BMP)
Bitmap merupakan format baku citra pada sistem operasi windows dan IBM
OS/2. Citra berformat BMP merupakan citra yang tidak terkompresi, sehingga pada
umumnya citra berformat BMP mempunyai ukuran yang relatif lebih besar
dibandingkan dengan forman citra lainnya. Intensitas pixel dari citra berformat
BMP dipetakan ke sejumlah bit tertentu. Panjang setiap pixel pada bitmap yaitu 4
bit, 8 bit, sampai 24 bit yang merepresentasikan nilai intensitas pixel. Dengan
demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255[4].
2. Joint Photographic Group Experts (JPEG)
Joint Photographic Group Experts (JPEG) merupakan standar kompresi file
yang dikembangkan oleh Group Joint Photographic Experts menggunakan
kombinasi DCT dan pengkodean Huffman untuk mengkompresikan citra. Citra
JPEG merupakan citra terkompresi yang bersifat lossy, artinya citra tidak bias
dikembalikan ke bentuk aslinya. Citra ini memiliki ukuran yang relatif lebih kecil
dibandingkan dengan citra berformat BMP karena telah terkompresi.
3. Portable Network Graphics (PNG)
Portable Network Graphics (PNG) adalah salah satu format penyimpanan citra
yang menggunakan metode kompresi yang tidak menghilangkan bagian dari citra
tersebut (lossless compression). Citra berformat PNG merupakan salah satu format
yang baik untuk digunakan pengolahan citra, karena format ini selain tidak
menghilangkan bagian dari citra yang sedang diolah.
2.3.Pengukuran Error Citra
Pengukuran error citra dilakukan untuk mengetahui tingkat kesamaan antara
citra asli dengan citra yang telah dimanipulasi. Pengukuran error dilakukan dengan
menghitung Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR)
dari citra.
Mean Square Error (MSE) adalah tingkat kesalahan pixel - pixel citra hasil
dari pemrosesan terhadap citra aslinya. Rumus untuk menghitung MSE pada citra
(PSNR) merupakan nilai (rasio) yang menunjukan tingkat toleransi noise tertentu
terhadap banyaknya noise pada suatu citra. Semakin tinggi nilai PSNR dari suatu
citra, maka semakin kecil tingkat kesalahan yang dimiliki citra tersebut. Untuk
menghitung nilai PSNR digunakan persamaan 2.3
2……….(2.2)
Dimana: I(x,y) nilai pixel dari citra asli.
I’(x,y) nilai pixel pada citra stegano. M = Panjang citra stegano (dalam pixel)
N = Lebar citra stegano (dalam pixel)
Setelah diperoleh dari nilai MSE maka nilai PSNR dapat dihitung dari kuadrat nilai
maksimum dibagi dengan MS. Secara matematis, nilai PSNR dirumuskan sebagai berikut:
= . � ���� … … … . .2
Semakin besar nilai PSNR dari citra, maka citra yang telah dimanipulasi semakin
mendekati citra aslinya, dengan kata lain semakin bagus kualitas citra hasil
manipulasi tersebut. Sebaliknya, semakin kecil nilai PSNR semakin berkurang
kualitas citra hasil manipulasi. Nilai PSNR pada umumnya berada pada rentang 20
- 40 db[6].
2.4.Steganografi
Steganografi adalah suatu ilmu, teknik dan seni tentang bagaimana
menyembunyikan data rahasia didalam wadah (media) digital sehingga keberadaan
data rahasia tersebut tidak diketahui oleh orang lain. Steganografi membutuhkan
dua properti, yaitu media penampung dan data rahasia yang akan disembunyikan.
Steganografi digital menggunakan media digital sebagai wadah penampung,
misalnya
citra (gambar), suara (audio), teks, dan video. Data rahasia yang
disembunyikan juga dapat berupa citra, suara, teks, atau video, Steganografi dapat
dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi data yang telah
disandikan (ciphertext) tetap tersedia, maka dengan steganografi ciphertext dapat
rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti keadaan
aslinya.
Pada umumnya, pesan steganografi muncul dengan bentuk lain seperti gambar,
artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini
merupakan tulisan yang menyelubungi atau menutupi.
Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak
terlihat diantara garis-garis yang kelihatan. Teknik steganografi meliputi banyak
sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau
gambar) didalam berkas-berkas lain yang mengandung teks, image, bahkan audio
tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan
struktur dari berkas semula.
Tujuan dari steganografi adalah merahasiakan atau menyembunyikan
keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam
prakteknya, kebanyakan pesan disembunyikan 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 kriptografi) dan pesan untuk disembunyikan.
Orang yang menerima gambar kemudian dapat menyimpulkan informasi
terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang
digunakan. Pada metode steganografi cara ini sangat berguna jika digunakan pada
cara steganografi komputer karena banyak format berkas digital yang dapat
dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di
antaranya:
1. Format image : bitmap (bmp), gif, png, jpeg, dll.
2. Format audio : wav, voc, mp3, dll.
3. Format lain : teks file, html, pdf, dll.
Kelebihan steganografi jika dibandingkan dengan kriptografi adalah
pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam
kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan
menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan
steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti
tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi
dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext.
Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext
lainnya dapat dimanipulasi untuk membawa pesan tersembunyi hanya penerima
(yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan
mendekripsikannya.
Steganografi mempunyai dua proses utama yaitu embed/penyisipan dan
exstrak(pengungkapan) terlihat pada gambar 2.1. Proses penyisipan merupakan
proses menyisipkan hidden object atau informasi pesan yang akan disisipkan, ke
dalam sebuah cover object atau media penampung, sehingga menghasilkan file baru
yang telah tersisipi pesan didalamnya yang disebut dengan stego file. Sedangkan
proses ekstrak merupakan proses pengembalian hidden object secara utuh setelah
disisipkan ke dalam coverobject.
Gambar 2.1 Proses Steganografi
Ada beberapa Kriteria-kriteria yang harus dipenuhi dalam pembuatan
steganografi. Kriteria - kriteria tersebut yaitu[3] :
1. Impercepbility, yaitu keberadaan pesan tidak dapat dipersepsi oleh indrawi. Jika
pesan disisipkan ke dalam sebuah citra, citra yang telah disisipi pesan harus tidak
dapat dibedakan dengan citra asli oleh mata. Begitu pula dengan suara,telinga
harus mendapati perbedaan antara suara asli dan suara yang telah disisipi pesan.
2. Fidelity, yaitu mutu media penampung tidak berubah banyak akibat penyisipan.
Perubahan yang terjadi harus tidak dapat dipersepsi oleh indra.
3. Recovery, yaitu pesan yang disembunyikan harus dapat diungkap kembali.
Tujuan steganografi adalah menyembunyikan informasi, maka sewaktu-waktu
informasi yang disembunyikan harus dapat diambil kembali untuk dapat
digunakan lebih lanjut sesuai keperluan.
2.4.1. Sejarah Steganografi
Sejarah steganografi cukup panjang. Awalnya adalah penggunaan hieroglyphic
oleh bangsa Mesir, yakni menulis menggunakan karakter-karakter dalam wujud
gambar. Tulisan Mesir kuno tersebut menjadi ide untuk membuat pesan rahasia saat
ini. Oleh karena itulah, tulisan mesir kuno yang menggunakan gambar dianggap
sebagai steganografi pertama di dunia.[5]
Menurut penelitian para ahli, Yunani termasuk bangsa yang menggunakan
steganografi setelah bangsa Mesir. Herodotus mendokumentasikan konflik antara
Persia dan Yunani pada abad ke-50 sebelum masehi. Dokumentasi pada masa Raja
Xerxes, raja dari Persia, disimpan di Yunani menggunakan steganografi. Berikut
adalah beberapa contoh penggunaan teknik steganografi klasik[6]:
1. Abad ke-15 orang Italia menggunakan tawas dan cuka untuk menulis pesan
rahasia diatas kulit telur. Kemudian telur tersebut direbus hingga “tinta” yang ada meresap dan tidak terlihat pada kulit telur. Penerima pesan cukup mengupas
kulit telur tersebut untuk membaca pesan.
2. Selama terjadinya Perang Dunia ke-2, tinta yang tidak tampak (invisible ink)
telah digunakan untuk menulis informasi pada lembaran kertas sehingga saat
kertas tersebut jatuh di tangan pihak lain hanya akan tampak seperti lembaran
kertas kosong biasa.
3. Pada sejarah Yunani kuno, masyarakatnya biasa menggunakan seorang
pembawa pesan sebagai perantara pengiriman pesan. Pengirim pesan tersebut
akan dicukur rambutnya, untuk kemudian dituliskan suatu pesan pada
kepalanya yang sudah botak. Setelah pesan dituliskan, pembawa pesan harus
pesan kepada pihak penerima. Pihak penerima kemudian akan mencukur
rambut pembawa pesan tersebut untuk melihat pesan yang tersembunyi.
4. Metode lain yang digunakan oleh masyarakat Yunani kuno adalah dengan
menggunakan lilin sebagai media penyembunyi pesan mereka. Pesan dituliskan
pada suatu lembaran, dan lembaran tersebut akan ditutup dengan lilin untuk
menyembunyikan pesan yang telah tertulis. Pihak penerima kemudian akan
menghilangkan lilin dari lembaran tersebut untuk melihat pesan yang
disampaikan oleh pihak pengirim.
2.4.2. Konsep dan Terminologi Steganografi
Terdapat beberapa istilah yang berkaitan dengan steganografi [7], yaitu:
1. Hiddentext atau embedded message: pesan yang disembunyikan.
2. Cover-object: pesan yang digunakan untuk menyembunyikan embedded
message.
3. Stego-object: pesan yang sudah berisi embedded message.
Di dalam steganografi digital, baik embedded message maupun cover-object
dapat berupa teks, citra, audio, maupun video. Penyisipan pesan ke dalam media
cover-object dinamakan encoding, sedangkan ekstraksi pesan dari stego-object
dinamakan decoding. Kedua proses ini mungkin memerlukan kunci rahasia
(stegokey) agar hanya pihak yang berhak saja yang dapat melakukan penyisipan
pesan dan ekstraksi pesan sehingga menambah tingkat keamanan data. Proses
umum penyisipan pesan dan ekstraksi pesan dapat dilihat pada Gambar 2.2
2.4.3. Teknik Steganografi
Pada dasarnya, terdapat tujuh teknik yang digunakan dalam steganografi [5], yaitu:
1. Injection, merupakan suatu teknik menanamkan pesan rahasia secara langsung
ke suatu media. Salah satu masalah dari teknik ini adalah ukuran media yang
diinjeksi enjadi lebih besar dari ukuran normalnya sehingga mudah dideteksi.
2. Teknik substitusi (SubstitutionTechniques), pada teknik ini data asli digantikan
dengan data rahasia. Biasanya, hasil teknik ini tidak terlalu mengubah ukuran
data asli, tetapi tergantung pada file media dan data yang akan disembunyikan.
Teknik substitusi ini bisa menurunkan kualitas media penampung.
3. Teknik Domain Transformasi (Domain Transform Techniques), yaitu dengan
cara menyimpan informasi rahasia pada transformasi ruang (misalnya domain
frekuensi) dari media penampung (cover). Akan lebih efektif jika teknik ini
diterapkan pada file berekstensi Jpeg (gambar).
4. Teknik Spread Spectrum (Spread Spectrum Techniques), merupakan sebuah
teknik pentransmisian menggunakan pseudo-noise code, yang independen
terhadap data informasi sebagai modulataor bentuk gelombang untuk
menyebarkan energi sinyal dalam sebuah jalur komunikasi (bandwidth) yang
lebih besar dari pada sinyal jalur komunikasi informasi. Penerima
mengumpulkan kembali sinyal dengan menggunakan replica pseudo-noise
code tersinkronisasi.
5. Teknik Statistik (Statistical Techniques), dengan teknik ini data di-encoding
melalui pengubahan beberapa informasi statistik dari media penampung
(cover). Media penampung di bagi dalam blok-blok dimana setiap blok tersebut
menyimpan satu pixel informasi rahasia yang disembunyikan. Perubahan
statistik ditunjukkan dengan indikasi 1 dan jika tidak ada perubahan, terlihat
indikasi 0. Sistem ini bekerja berdasarkan kemampuan penerima dalam
membedakan antara informasi yang dimodifikasi dan yang belum.
6. Teknik Distorsi (Distortion Techniques), informasi yang hendak
disembunyikan disimpan berdasarkan distorsi sinyal. Teknik ini menciptakan
7. Teknik Pembangkitan Wadah (Cover Generation Techniques), teknik ini
menyembunyikan informasi rahasia sejalan dengan pembangkitan cover.
2.4.4. Steganografi Pada Citra Digital
Citra digital merupakan media penampung yang banyak digunakan dalam
steganografi. Penggunaan citra digital sebagai media penampung mempunyai
kelebihan karena indra penglihatan manusia memiliki keterbatasan terhadap warna,
sehingga dengan keterbatasan tersebut manusia sulit membedakan citra digital yang
asli dengan citra digital yang telah disisipi pesan rahasia.
Banyak metode yang dapat digunakan dalam pembuatan steganografi pada
citra digital seperti Least Significant Bits (LSB), Bit Plane Complexity Segmentation
(BPCS), Discrete Cosine Transform (DCT), Discrete Wavelet Transform (DWT),
Spread Spectrum dan metode-metode lainnya. Dari banyaknya metode tersebut,
metode steganografi pada citra digital dapat dibagi menjadi dua bagian yaitu
metode pada transform domain dan image domain seperti pada gambar 2.3.
Gambar 2.3 Kategori Metode Steganografi Pada Citra Digital[3]
2.5.Random Pixel Positioning (RPP) Steganografi
Random Pixel Positioning merupakan salah satu metode yang dapat digunakan
dalam steganografi. Metode ini beroperasi pada ranah spasial dari citra.
Berdasarkan analisis terhadap sistem penglihatan manusia yang menyatakan
bahwa, mata manusia tidak sensitif terhadap perubahan pada pixel yang memiliki
kekontrasan rendah. Melalui sifat tersebut maka lebih banyak bit data rahasia yang
dapat disisipkan pada pixel yang memiliki nilai kekontrasan tinggi, dan sedikit bit
yang dapat disisipkan pada pixel dengan kekontrasan rendah.dengan proses
penyisipan yang secara acak. Hal tersebut yang menjadi dasar pemikiran metode
Random Pixel Positioning (RPP) pada steganografi.
Penyisipan pesan dapat dilakukan dengan mengambil sebanyak t bit dari pesan
yang akan disisipkan. Selanjutnya dihitung nilai positioning random yang baru
untuk penyisipan kedalam citra menggunakan persamaan 2.4.
�′� = ��+ � … … … . . … … … . .
Dimana : b : Nilai desimal dari jumlah bit disisipkan.
di : Nilai terkecil dari range selisih perbandingan dua pixel.
Untuk menyisipkan pesan ada beberapa aturan yang harus dipenuhi yaitu :
1. Jika Pi≥ Pi+1dan d’i > di , maka (Pi + [m/2] , Pi+1 - [m/2]) 2. Jika Pi < Pi+1dan d’i > di , maka (Pi - [m/2] , Pi+1 + [m/2]) 3. Jika Pi≥ Pi+1dan d’i ≤ di , maka (Pi - [m/2] , Pi+1 + [m/2]) 4. Jika Pi < Pi+1dan d’i ≤ di , maka (Pi + [m/2] Pi+1 - [m/2])
Dimana m didapat dari selisih d’i dengan di menggunakan persamaan 2.5.
M = |d’i - di|……….(2.5)
Proses tersebut dilakukan terus hingga bit pesan tersisipi semuanya kedalam citra.
Proses ekstraksi pesan dari citra stego menggunakan metode ini dimulai dengan
menghitung nilai positioning random (di) antara dua pixel secara acak. Nilai
positioning random tersebut digunakan untuk mengetahui nilai continuous ranges
(R).
Berdasarkan informasi tersebut dapat diketahui ukuran data rahasia yang
disisipkan pada pixel, sehingga pesan rahasia yang telah disisipkan didapatkan
kembali. Proses ekstraksi ini dilakukan sampai semua data rahasia yang telah
2.6.Kriptografi
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data,
otentikasi, dan autentifikasi data[2]. Kriptografi bukan satu-satunya cara untuk
menyediakan keamanan informasi, melainkan satu set teknik yang dapat digunakan
untuk mengamankan informasi.
Secara umum, kriptografi terdiri dari dua buah bagian utama yaitu bagian
enkripsi dan bagian dekripsi. Enkripsi adalah proses transformasi informasi
menjadi bentuk lain sehingga isi pesan yang sebenarnya tidak dapat dipahami, hal
ini dimaksudkan agar informasi tetap terlindung dari pihak yang tidak berhak
menerima. Sedangkan dekripsi adalah proses kebalikan enkripsi, yaitu transformasi
data terenkripsi ke data bentuk semula. Proses transformasi dari plainteks menjadi
cipherteks akan dikontrol oleh kunci. Peran kunci sangatlah penting, kunci
bersama-sama dengan algoritma matematisnya akan memproses plainteks menjadi
cipherteks dan sebaliknya.
Kriptografi tidak memenuhi semua aspek dari keamanan informasi. Kriptografi
hanya memenuhi empat aspek dalam keamanan informasi yang merupakan tujuan
dari kriptografi. Ke empat aspek tersebut yaitu kerahasiaan (confidentiality),
integritas data (integrity), otentikasi data (authentication), dan non-repudiation[5].
1. Kerahasiaan
Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi
dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka
informasi yang telah disandi. Kriptografi memenuhi aspek kerahasiaan karena
informasi tidak dapat secara langsung diketahui.
2. Integritas data
Integritas data adalah layanan yang berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
3. Otentikasi
Otentikasi adalah layanan yang berhubungan dengan identifikasi/ pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
melalui jaringan harus diotentikasi keaslian, isi datanya, waktu pengiriman, dan
lain-lain. Untuk alasan ini aspek kriptografi biasanya dibagi menjadi dua kelas
utama yaitu otentikasi entitas dan otentikasi data asal.
4. Non-repudiation
Non-repudiation adalah layanan yang mencegah terjadinya penyangkalan
terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan atau
membuat. Sebagai contoh, satu entitas dapat mengijinkan pembelian properti oleh
entitas lain dan kemudian berusaha menyangkal otorisasi tersebut diberikan.
Sebuah prosedur yang melibatkan pihak ketiga yang terpercaya diperlukan untuk
menyelesaikan sengketa tersebut.
2.6.1. Algoritma Kriptografi
Algoritma kriptografi yang handal adalah algoritma kriptografi yang
kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri.
Berdasarkan jenis kuncinya, algoritma kriptografi dibagi menjadi dua jenis yaitu
algoritma simetris dan algoritma asimetris.
2.6.1.1. Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci
enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut
juga sebagai single-key algorithm[5]. Ilustrasi penggunaan algoritma kriptografi
dengan kunci simetris dapat terlihat pada gambar 2.3 berikut.
Gambar 2.3 Ilustrasi Kriptografi Dengan Kunci Simetris
Algoritma simetris banyak digunakan karena lebih cepat dan lebih simpel,
dapat diketahui, maka informasi pun dapat diketahui. Beberapa algoritma
kriptografi yang termasuk pada algoritma simetris yaitu DES, AES, Rijndael,
Blowfish, dan IDEA.
2.6.1.2. Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) dalah suatu algoritma dimana
kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi[5]. Algoritma ini
menggunakan dua kunci yakni kunci publik (public key) dan kunci privat(private
key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan
secara rahasia oleh pengguna. Ilustrasi penggunaan algoritma kriptografi dengan
kunci asimetris dapat terlihat pada gambar 2.4 berikut.
Gambar 2.4. Ilustrasi Kriptografi Dengan Kunci Asimetris.
Algoritma asimetris mempunyai keamanan yang lebih baik, karena jika public
key diketahui, informasi belum tentu dapat diketahui karena private key
kemungkinan berbeda. Namun akan menjadi sulit dan lama ketika
implementasinya. Beberapa algoritma kriptografi yang termasuk pada algoritma
asimetris yaitu Diffie - Hellman, RSA, ElGamal, dan DSA.
2.6.2. Algoritma advanced encryption standard (AES)
Advanced Encryption Standard termasuk dalam jenis algoritma simetris dan
cipher block. Dengan demikian algoritma ini menggunakan kunci yang sama saat
enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah
bit tertentu.
Advanced Encryption Standard mendukung berbagai variasi ukuran blok dan
kunci yang akan digunakan, namun Advanced Encryption Standard mempunyai
ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok
enkripsi dan dekripsi. Tabel 2.1 adalah perbandingan jumlah proses yang harus
dilalui untuk masing-masing masukan.
Tabel 2.1 Jumlah Proses Berdasarkan Ukuran Bit Blok dan Kunci
Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap
anggota array sebelum menghasilkan keluaran cipher text dinamakan dengan state.
Setiap state akan mengalami proses yang terdiri dari empat tahap yaitu, Add Round
Key, Sub Bytes, Shift Rows, dan Mix Columns. Kecuali pada tahap Mix Columns,
ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap Mix Columns
tidak akan dilakukan pada tahap terakhir[8].
2.6.2.1. Add Round Key
Proses Add Round Key yaitu proses menggabungkan subkey dengan state
menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang dari
state[8]. Untuk setiap tahap, subkey dibangkitkan dari kunci utama dengan
menggunakan proses key schedule. Proses Add Round Key dapat dilihat pada
Gambar 2.5.
2.6.2.2. Sub Bytes
Proses adalah proses substitusi dengan cara mengganti setiap byte state dengan
byte pada sebuah tabel yang dinamakan tabel S-Box yang dapat dilihat pada Tabel
2.2.
Tabel 2.2 S-Box
Sebuah tabel S-Box terdiri dari 16 baris dan 16 kolom dengan masing-masing
berukuran 1 byte. Proses Sub Bytes dapat dilihat pada Gambar 2.6.
Gambar 2.6 Proses Sub Bytes Algoritma AES
2.6.2.3. Shift Rows
Proses Shift Rows adalah proses perputaran pada tiga baris terakhir dari state
dengan jumlah putaran yang berbeda-beda. Baris ke-1 akan diputar sebanyak 1 kali,
baris ke-2 akan diputar sebanyak 2 kali, dan baris ke-3 akan diputar sebanyak 3 kali,
sedangkan baris ke-0 tidak akan diputar[8]. Proses Shift Rows diperlihatkan pada
Gambar 2.7 Proses Shift Rows Algoritma AES
2.6.2.4. Mix Columns
Operasi Mix Columns adalah proses menggabungkan 4 bytes dari setiap kolom
dari tabel state dengan menggunakan transformasi linier[8]. Operasi MixColumns
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 (x)=11x3+13x2+9x+14.
Operasi Mix Columns juga dapat dipandang sebagai perkalian matrix seperti terlihat
pada gambar 2.8.
Gambar 2.8 Proses Mix Columns Algoritma AES
2.7.Unified Modelling Language (UML)
Unified Modelling Language (UML) adalah sebuah bahasa pemodelan standar
yang memiliki sintaks dan semantic. Pemodelan ini sangat cocok digunakan untuk
merancang dan memodelkan sistem berorientasi objek[9].
Diagram pada UML dibagi menjadi dua bagian yaitu structural diagram dan
behavior diagram. Structural diagram digunakan untuk mendeskripsikan relasi
antar kelas. Tools yang digunakan pada bagian ini yaitu class diagram. Sedangkan
sebuah use case (bagaimana seorang aktor menggunakan sistem). Tools yang
digunakan pada bagian ini yaitu use case diagram, sequence diagram, collaboration
diagram, statechart diagram, dan activity diagram.
1. Diagram Class
Diagram class digunakan untuk menggambarkan keadaan suatu sistem dengan
menjelaskan keterhubungan antara suatu class dengan class yang lain yang terdapat
pada sistem[9]. Sebuah class terdiri dari nama, atribut dan method. Atribut dan
method dari sebuah class mempunyai visibility, Ada tiga jenis visibility yang
digunakan yaitu private, public, dan protected. Setiap class pada class diagram
mempunyai hubungan dengan class lainnya, ada beberapa jenis hubungan class,
yaitu dependency, asosiasi, agregasi, komposisi dan generalisasi.
a. Dependency
Dependency merupakan hubungan terlemah antar class. Dependency bermakna
satu class menggunakan atau memiliki pengetahuan terhadap class lain, namun
hubungannya hanya sementara dan tidak ada batas waktu yang jelas.
b. Asosiasi
Asosiasi mempunyai hubungan yang lebih kuat dari hubungan dependency,
dimana suatu class tetap berhubungan dengan class lain seterusnya. Hubungan
asosiasi dibagi menjadi dua jenis yaitu directional dan bidirectional.
c. Agregasi
Agregasi merupakan bentuk hubungan yang mengimplikasikan kepemilikan
suatu class. Agregasi juga merupakan bentuk yang lebih kuat dari asosiasi.
Hubungan agregasi dinyatakan dengan simbol diamond pada pemilik kelas dan
garis utuh berpanah kekelas yang dimiliki.
d. Komposisi
Komposisi merupakan bentuk hubungan antar class yang paling kuat.
Komposisi digunakan untuk mengambil seluruh bagian dari class yang
berhubungan. Aturan dari komposisi yaitu hanya boleh ada satu komposisi dalam
e. Generalisasi
Generalisasi merupakan bentuk hubungan antar class, dari class yang umum
dengan class yang lebih khusus. Contoh class hewan memiliki hubungan
generalisasi dengan class kucing, karena kucing merupakan class khusus dari class
hewan yang lebih umum.
2. Diagram Use Case
Diagram use case digunakan untuk mendeskripsikan kejadian-kejadian apa saja
yang dapat dilakukan oleh user aktor dan fungsionalitas-fungsionalitas apa saja
yang diharapkan dari sistem yang akan dibangun, tanpa mendeskripsikan
bagaimana sistem menyelesaikannya[9]. Sebuah use case menggambarkan suatu
urutan interaksi antara satu atau lebih aktor dan sistem. Dalam fase requirements,
model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi
antara aktor dan sistem dalam suatu bentuk naratif, yang terdiri dari input user dan
respon-respon sistem.
Setiap use case menggambarkan perilaku sejumlah aspek sistem, tanpa
mengurangi struktur internalnya. Selama pembuatan model use case secara pararel
juga harus ditetapkan obyek-obyek yang terlibat dalam setiap use case. Contoh use
case diagram diperlihatkan pada gambar 2.9.
Gambar 2.9 Contoh Use Case Diagram
3. Diagram Sequence
Diagram sequence menggambarkan interaksi antar objek di dalam dan di
sekitar sistem yang menekankan pada pengiriman pesan dalam suatu waktu
atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event
untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas
tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa
yang dihasilkan. Contoh sequence diagram diperlihatkan pada gambar 2.10.
Gambar 2.10 Contoh Sequence Diagram
4. Diagram Collaboration
Diagram collaboration menunjukan informasi yang sama seperti dalam
sequence diagram. Perbedaannya adalah dari cara mengelompokan objek sequence
berdasarkan urutan nomor dari pesan[9]. Contoh collaboration diagram
diperlihatkan pada gambar 2.11.
5. Diagram Statechart
Diagram statechart menggambarkan keadaan-keadaan pada sistem, memuat
status (state), transisi, kejadian serta aktifitas[9]. Contoh Statechart diagram
diperlihatkan pada gambar 2.12.
Gambar 2.12 Contoh Statechart Diagram
6. Diagram Activity
Diagram activity menggambarkan berbagai alur aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin
terjadi, dan bagaimana mereka berakhir[9]. Activity diagram merupakan state
diagram khusus, di mana sebagian besar state adalah action dan sebagian besar
transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh
karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem
(dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan
proses-proses dan jalur-jalur. aktivitas dari level atas secara umum. Contoh Activity
Gambar 2.13 Contoh Activity Diagram
2.8.Teknologi Java
Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsystems pada
pertengahan tahun 1990. Menurut definisi dari Sun, Java adalah nama untuk
sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada
komputer standalone ataupun pada lingkungan jaringan. Java berdiri di atas sebuah
mesin interpreter yang diberi nama Java Virtual Machine (JVM). JVM inilah yang
akan membaca bytecode dalam file class dari suatu program sebagai representasi
langsung program yang berisi bahasa mesin.
Oleh karena itu, bahasa Java disebut sebagai bahasa pemrograman yang
portable karena dapat dijalankan pada berbagai sistem operasi, asalkan pada sistem
operasi tersebut terdapat JVM. Platform Java terdiri dari kumpulan library, JVM,
kelas-kelas loader yang dipaket dalam sebuah lingkungan rutin Java, dan sebuah
compiler, debuger, dan perangkat lain yang dipaket dalam Java Development Kit
(JDK)[1].
Java merupakan salah satu bahasa pemrograman yang menggunakan paradigma
pemrograman berbasis objek. Paradigma ini yaitu menggunakan objek untuk
membungkus atribut dan operasi yang mungkin pada objek tersebut. Java
A. Kelebihan Java
Beberapa kelebihan dari java yaitu sebagai berikut:
1. Multiplatform
Kelebihan utama dari java ialah dapat dijalankan di beberapa platform/system
operasi komputer, sesuai dengan prinsip tulis sekali, jalankan dimana saja.
Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas
sistem operasi linux tetapi dijalankan dengan baik di atas Microsoft Windows.
2. OOP (Object Oriented Programming)
Java merupakan salah satu bahasan pemrograman berbasis objek secara murni.
Semua tipe data diturunkan dari kelas dasar yang disebut objek. Hal ini sangat
memudahkan pemrogram untuk mendesain, membuat, mengembangkan, dan
mengalokasi kesalahan sebuah program dengan basis java secara cepat, tepat,
mudah dan terorganisir.
3. Library yang lengkap
Java terkenal dengan kelengkapan library (perpustakaan) (kumpulan
program-program yang disertakan dalam pemrogram java) yang sangat memudahkan dalam
penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan
perpustakaan ini ditambah dengan keberadaan komunitas java yang besar yang
terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh
kebutuhan pembangunan aplikasi.
4. Bergaya C++
Java memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik
banyak pemrogram C++ untuk pindah ke java. Saat ini pengguna java sangat
banyak, sebagian besar adalah pemrogram C++ yang pindah ke java.
5. Pengumpulan sampah otomatis
Java memiliki fasilitas pengaturan penggunaan memori sehingga para
pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti
B. Kekurangan Java
Beberapa kekurangan Java antara lain :
1. Mudah didekompilasi
Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber.
Ini memungkinkan karena kode jadi java merupakan bytecode yang menyimpan
banyak atribut bahasa tingkat tinggi seperti nama-nama kelas, metode dan tipe data.
2. Penggunaan memori yang banyak
Penggunaan memori untuk program berbasis java jauh lebih besar dari pada
bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik
31
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1Analisis Sistem
Analisis sistem merupakan suatu tahapan yang bertujuan untuk mengetahui dan
mengamati apa saja yang terlibat dalam suatu sistem. Pembahasan yang ada pada
analisis sistem ini yaitu analisis masalah, analisis algoritma, analisis kebutuhan
non-fungsional, dan analisis kebutuhan fungsional.
3.1.1 Analisis Masalah
Analisis masalah dilakukan untuk mengetahui masalah-masalah apa saja
yang terjadi dalam pembangunan aplikasi steganografi. Masalah yang terjadi ketika
pembangunan steganografi pada citra digital yaitu kapasitas citra yang dapat
disisipkan informasi kecil, kualitas citra digital yang telah disisipkan informasi, dan
keamanan informasi yang disisipkan kedalam citra tidak terjamin, karena saat ini
banyak aplikasi yang digunakan untuk menanalisis citra apakah terdapat informasi
yang disembunyikan dan letak dari informasi yang disembunyikan. Jika letak dari
informasi yang disisipkan pada citra diketahui, maka informasi akan langsung dapat
diketahui.
3.1.2 Analisis Algoritma
Analisis algoritma digunakan untuk mengetahui alur proses dari algoritma
yang digunakan untuk dapat diterapkan ke dalam aplikasi yang dibangun.
Pembangunan aplikasi ini menggunakan algoritma Advanced Encryption Standard
(AES) untuk proses enkripsi dan dekripsi dengan panjang kunci 32bit sebagai
keamanan terhadap informasi yang akan disisipkan. Sedangkan metode
steganografi yang digunakan yaitu metode Random Pixel positioning (RPP) untuk
proses penyisipan dan ekstraksi informasi. Tahapan-tahapan yang dilakukan pada
setiap prosesnya yaitu sebagai berikut :
1. Proses Penyisipan
a. Pengirim memilih cover citra yang akan disisipkan
c. Pengirim melakukan enkripsi terhadap pesan menggunakan algoritma
Advanced Encryption Standard (AES)256bit.
d. Pengirim memilih file citra yang akan digunakan sebagai media penampung
dari pesan.
e. Pengirim melakukan proses penyisipan menggunakan metode Random
Pixel Positioning(RPP).
2. Proses Ekstraksi
a. Penerima memilih file citra yang telah disisipkan pesan (stego object).
b. Penerima melakukan proses ekstraksi menggunakan metode Random Pixel
positioning (RPP).
c. Penerima melakukan dekripsi terhadap pesan menggunakan algoritma
Advanced Encryption Standard (AES).
d. Penerima menyimpan pesan yang telah diekstraksi dari citra.
Tahapan-tahapan proses pada aplikasi steganografi secara umum dapat dilihat pada
gambar 3.1.
Gambar 3. 1 Gambaran Umum Aplikasi Steganografi
3.1.2.1Analisis Algoritma Advanced Encryption Standard(AES)
Algoritma Advanced Encryption Standard (AES) merupakan algoritma
kriptografi yang sifatnya simetris dan cipher block. Dengan demikian algoritma ini
mengunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan
Encryption Standard (AES) yang digunakaan pada aplikasi steganografi yang
dibangun menggunakan ukuran blok dan kunci 32bit. Algoritma Advanced
Encryption Standard (AES) terdapat dua proses yaitu proses penjadwalan kunci dan
enkripsi.
3.1.2.1.1 Analisis Penjadwalan Kunci
Proses penjadwalan kunci merupakan proses dimana cipherkey di
jadwalkan untuk menghasilkan subkey-subkey yang digunakan untuk proses
enkripsi dan dekripsi pada algoritma Advanced Encryption Standard (AES). Contoh
penjadwalan kunci pada algoritma Advanced Encryption Standard (AES) jika
diketahui kunci yang akan digunakan untuk enkripsi dengan panjang 32 byte yaitu:
Cipherkey = abcdefghijklmnopqrstuvwxyz123456
Tahap awal ubah cipherkey kedalam bentuk hexadecimal menjadi sebagai berikut:
Cipherkey = 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
77 78 79 7a 7b 7c 7d 7e 7f 80
Tahap selanjutnya melakukan operasi-operasi penjadwalan kunci.
Operasi-operasi yang dilakukan yaitu RotWord, SubByte, dan melakukan operasi XOR
untuk menghasilkan subkey. Operasi-operasi yang dilakukan yaitu sebagai berikut:
1. Masukan cipherkey tersebut kedalam blok 32 byte menjadi.
� = [ ]
2. Melakukan operasi RotWord pada kolom terakhir dari ciphertext.
[ �
] = [ �
]
3. Melakukan operasi SubByte dengan tabel s-box pada tabel II.2.
4. Hasil dari operasi SubByte dilakukan operasi XOR dengan rcon dan
W1 (kolom ke-1 dari W).
� = [ ]
[ ] ⨁ [ ] ⨁ [ ] = [ ]
5. Melakukan operasi XOR untuk untuk kolom selanjutnya dengan
kolom yang baru.
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
[ ] ⨁ [ ] = [ ]
6. Simpan kedalam subkey.
� � � = [ ]
Subkey ini yang akan digunakan untuk proses enkripsi atau dekripsi pada
algoritma Advanced Encryption Standard (AES) pada round ke-1 untuk round
3.1.2.1.2 Analisis Proses Enkripsi Algoritma (AES)
Proses enkripsi pada algoritma Advanced Encryption Standard (AES) terdiri
dari empat operasi yaitu Add Round Key, Sub Bytes, Shift Rows, dan Mix Columns.
Operasi-operasi ini diulang terus-menerus hingga menghasilkan ciphertext. Jumlah
perulangan yang dilakukan tergantung pada ukuran blok dan kunci yang digunakan,
dalam hal ini ukuran blok dan kunci yang digunakan yaitu 256 bit, sehingga
berdasarkan pada tabel 2.1, maka perulangan yang dilakukan sebanyak 14 kali.
Contoh enkripsi pada algoritma advanced encryption standard, jika diketahui kunci
dan plaintext yang akan digunakan untuk enkripsi dengan panjang 32 byte.
Cipherkey = abcdefghijklmnopqrstuvwxyx123456
Plaintext = UNIVERSITAS KOMPUTER INDONESIA !
Tahap awal ubah cipherkey dan plaintext kedalam bentuk hexadecimal menjadi
sebagai berikut:
Cipherkey = 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75
76 77 78 79 7a 7b 7c 7d 7e 7f 80
Plaintext = 55 4E 49 56 45 52 53 49 54 41 53 20 4b 4F 4D 50 55 54 45 52 20
49 4E 44 4F 4E 45 49 53 41 20 21
Masukan cipherkey dan plaintext ke dalam blok 32 byte sehingga menjadi
� = [ ] �� ℎ �� �
dapat dilakukan operasi-operasi enkripsi pada algoritma advanced encryption
standard, sebagai berikut:
1. Melakukan operasi AddRoundKey dengan melakukan operasi XOR pada
setiap kolom di state dengan kolom di ciphertext, sehingga menghasilkan
� = [ ]
2. State yang telah dilakukan operasi AddRoundKey tersebut dilakukan
perulangan dengan urutan operasi pertama yaitu operasi SubByte. Operasi
ini yaitu melakukan subtitusi state dengan tabel s-box pada tabel 2.2
sehingga menghasilkan state baru yaitu:
� = [ ]
3. Hasil dari operasi SubByte dilakukan operasi ShiftRows yaitu memutar tiga
baris terakhir dari state seperti berikut:
� = [ ] Menjadi ���� = [ ]
4. Melakukan operasi MixColumns yaitu melakukan perkalian tiap kolom pada
state dengan matriks seperti berikut.
[ ] • [ ] = [ ] � = [ ]
5. Melakukan AddRoundKey kembali dengan menggunakan SubKey hasil dari
penjadwalan kunci CipherKey.
[ ] ⨁ [ ]
Sehingga menghasilkan state baru yaitu
� = [ ]
Semua operasi tersebut diulang sebanyak 10 kali hingga mendapatkan