DENGAN METODE
LEAST SIGNIFICANT BIT
(LSB)
TERHADAP PESAN TERENKRIPSI
DENGAN ALGORITMA
TWOFISH
SKRIPSI
Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar
Strata Satu Jurusan Informatika
Disusun Oleh:
MARYAM
NIM. M0508050
JURUSAN INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
SURAKARTA
i
AUDIO
STEGANOGRAFI
DENGAN METODE
LEAST SIGNIFICANT BIT
(LSB)
TERHADAP PESAN TERENKRIPSI
DENGAN ALGORITMA
TWOFISH
SKRIPSI
Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar
Strata Satu Jurusan Informatika
Disusun Oleh:
MARYAM
NIM. M0508050
JURUSAN INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
SURAKARTA
Februari, 2013
SKRIPSI
AUDIO
STEGANOGRAFI
DENGAN METODE
LEAST SIGNIFICANT BIT
(LSB)
TERHADAP PESAN TERENKRIPSI
DENGAN ALGORITMA
TWOFISH
Disusun oleh:
MARYAM
M0508050
Skripsi ini telah disetujui untuk dipertahankan di hadapan dewan penguji
pada tanggal7 Februari 2013
Pembimbing I
Esti Suryani, S.Si., M.Kom
NIP. 19761129 200812 2 001
Pembimbing II
Abdul Aziz, S.Kom., M.Cs
iii
MOTTO
-(QS. Ali Imron : 146)
v
PERSEMBAHAN
Karya ini Penulis persembahkan kepada:
Keluarga besar tercinta, Bapak Ibu & Bapak Ibu mertua
Suamiku dengan kasih sayang dan dukungannya, love u
Kakak & Adek-adek bandel, terimakasih untuk lecutan
semangatnya
Keluarga keduaku, Teman-teman Informatika UNS
-sahabat khususnya 2008
Terimakasih telah berbagi suka dan duka bersama
:-)
AUDIO
STEGANOGRAFI
DENGAN METODE
LEAST SIGNIFICANT BIT
(LSB)
TERHADAP PESAN TERENKRIPSI
DENGAN ALGORITMA
TWOFISH
MARYAM
Jurusan Informatika. Fakultas MIPA. Universitas Sebelas Maret
ABSTRAK
Informasi atau pesan dapat menjadi sesuatu yang sangat berharga dan dijaga kerahasiaannya. Semakin berkembangnya teknologi informasi, maka berbagai cara juga berkembang untuk dapat mengetahui informasi yang bukan haknya. Keamanan informasi dapat dilakukan dengan teknik kriptografi dan steganografi. Penelitian ini berfokus pada enkripsi pesan teks menggunakan algoritma Twofish menghasilkan chiperteks. Selanjutnya chiperteks tersebut disisipkan ke dalam file audio dengan metode LSB sehingga dihasilkan file audio stego.
Pengujian pertama adalah uji kapasitas file audio untuk mengetahui kapasitas pesan terbesar yang mampu ditampung file audio. Pengujian kedua dilakukan dengan menghitung waktu eksekusi enkripsi, dekripsi, penyisipan, dan ekstraksi. Plainteks yang diujikan berformat .txt dengan ukuran kelipatan 5 KB. File audio yang digunakan menggunakan format .mp3 dengan genre musik instrumen, akustik, pop, dan rock. Pengujian ketiga dilakukan dengan menghitung nilai PSNR untuk mengukur kualitas suara file audio stego.
Hasil pengujian menunjukkan bahwa penerapan steganografi pada file audio
mp3 berhasil dilakukan. Kapasitas pesan yang mampu ditampung file mp3 dipengaruhi oleh banyaknya byte homogen. Waktu eksekusi penyisipan dan ekstraksi tercepat berturut-turut dimiliki oleh genre musik instrumen, akustik, rock, dan pop.
Genre musik instrumen mempunyai kapasitas pesan terbesar dan waktu eksekusi tercepat. Rata-rata waktu eksekusi untuk enkripsi, dekripsi, penyisipan, dan ekstraksi mengalami kenaikan secara linear. File audio stego mempunyai kualitas baik dengan nilai PSNR yang berkisar antara nilai 30 dB 50 dB. Hasil ekstraksi file audio stego memiliki tingkat kesesuaian karakter pesan 100% terhadap isi pesan asli.
Kata Kunci
vii
AUDIO STEGANOGRAPHY
WITH LEAST SIGNIFICANT BIT (LSB) METHODS
FOR MESSAGE ENCRYPTED
WITH TWOFISH ALGORITHM
MARYAM
Department of Informatics - Faculty of Mathematics and Natural Sciences
Sebelas Maret University
ABSTRACT
Information or message can be something very valuable and confidential. The continued development of information technology, it is also developing ways to find out information that is not right. Information security can be done with cryptography and steganography techniques. This study focuses on text messaging encryption using Twofish algorithm produces chipertext. Furthermore chipertext is inserted into the audio file that is generated by the method LSB stego audio files.
The first test is a test of the capacity of the audio file to determine the capacity of the largest message that can be accommodated audio files. The second test is done by calculating the execution time of encryption, decryption, insertion and extraction. Tested plaintext extension. txt with multiple size 5 KB. Audio files used to use format. mp3 by genre musical instruments, acoustic, pop, and rock. The third testing done by calculating the value of PSNR for measuring voice quality stego audio files.
The test results showed that the application of steganography in audio mp3 file successfully. Capacity of messages that can be accommodated mp3 files affected by the number of bytes homogeneous. Execution time insertion and extraction of the fastest consecutive owned by genre musical instruments, acoustic, rock, and pop. Genre of music instruments have the greatest message capacity and the fastest execution time. The average execution time for encryption, decryption, insertion and extraction increased linearly. Stego audio files have good quality with PSNR values ranging from 30 dB - 50 dB. Stego audio files extracted own level of fitness characters message 100% of the content of the original message.
Keyword
Audio Steganography, Least Significant Bit (LSB), Twofish
KATA PENGANTAR
senantiasa memberikan nikmat dan karunia-Nya sehingga penulis dapat
menyelesaikan penelitian dengan judul Audio Steganografi dengan Metode Least
Significant Bit (LSB) terhadap Pesan Terenkripsi dengan Algoritma Twofish , yang
menjadi salah satu syarat wajib untuk memperoleh gelar Sarjana Informatika di
Universitas Sebelas Maret (UNS) Surakarta.
Penulis mengucapkan terima kasih kepada semua pihak yang telah
memberikan bimbingan, dan motivasi dalam penelitian ini, terutama kepada:
1. Ibu Esti Suryani, S.Si., M.T. selaku Dosen Pembimbing I yang penuh kesabaran
membimbing, mengarahkan, dan memberi motivasi kepada penulis selama
proses penyusunan skripsi ini,
2. Bapak Abdul Aziz, S.Si, M.Kom selaku Dosen Pembimbing II yang penuh
kesabaran membimbing, mengarahkan, dan memberi motivasi kepada penulis
selama proses penyusunan skripsi ini,
3. Bapak dan Ibu dosen serta karyawan di Jurusan Informatika FMIPA UNS yang
telah mengajarkan ilmu dan membantu selama masa studi,
4. Ibu, Bapak, suami, kakak, dan adek-adek yang telah memberikan motivasi dan
doa sehingga penyusunan skripsi ini dapat terselesaikan,
5. Sahabat-sahabat Informatika, yang telah membantu penyelesaian skripsi ini.
Penulis berharap semoga skripsi ini dapat bermanfaat bagi semua pihak yang
berkepentingan.
Surakarta, 7 Februari 2013
ix DAFTAR ISI
Halaman
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN ... ii
HALAMAN PENGESAHAN ... iii
HALAMANMOTTO ... iv
HALAMAN PERSEMBAHAN ... v
ABSTRAK ... vi
ABSTRACT ... vii
KATA PENGANTAR ... viii
DAFTAR ISI ... ix
DAFTAR TABEL ... xii
DAFTAR GAMBAR ... xiii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Batasan Masalah ... 3
1.4 Tujuan Penelitian ... 3
1.5 Manfaat Penelitian ... 4
1.6 Sistematika Penulisan ... 4
BAB II TINJAUAN PUSTAKA ... 5
2.1 Dasar Teori ... 5
2.1.1 Kriptografi ... 5
2.1.2 Algoritma Twofish ... 14
2.1.3 Steganografi ... 28
2.1.4 Audio Steganografi ... 32
2.1.5 LSB (Least Significant Bit) ... 33
2.1.6 File Audio ... 34
2.1.7 MP3 ... 35
2.2 Penelitian Terkait ... 38
2.3 Rencana Penelitian ... 41
BAB III METODOLOGI PENELITIAN... 42
3.1 Studi Literatur ... 42
3.2 Tahap Identifikasi Masalah ... 42
3.3 Tahap Implementasi ... 42
3.4 Tahap Enkripsi ... 43
3.5 Tahap Penyisipan Pesan ... 45
3.6 Tahap Ekstraksi Pesan ... 49
3.7 Tahap Dekripsi Pesan ... 51
3.8 Tahap Pengujian ... 53
BAB IV PEMBAHASAN ... 55
4.1 Spesifikasi Perangkat ... 55
4.2 Hasil Pengujian dan Analisa ... 55
4.2.1 Pengujian Kapasitas Pesan yang Mampu ditampung File Audio ... 57
4.2.2 Pengujian Kecepatan Waktu Eksekusi ... 58
4.2.3 Pengujian Kualitas Suara ... 68
BAB V PENUTUP ... 71
5.1 Kesimpulan ... 71
5.2 Saran ... 72
xi
DAFTAR TABEL
Halaman
Tabel 2.1 Kotak S-boxes ...
Tabel 4.1 Atribut Data Sample File Audio . 56
Tabel 4.2 Atribut Data Sample File Teks... 56
Tabel 4.2 Atribut Data Sample File Teks... 56
Tabel 4.3 Hasil Pengujian Kapasitas Pesan yang Mampu ditampung File ..59
Tabel 4.5 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Akustik dengan Kapasitas Pesan 50000 byte 75000 byte ... 59
Tabel 4.6 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Intrumen dengan Kapasitas Pesan 10000 byte 35000 byte ... 59
Tabel 4.7 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Instrumen dengan Kapasitas Pesan 50000 byte 75000 byte ... 60
Tabel 4.8 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Pop dengan Kapasitas Pesan 10000 byte 35000 byte ... 60
Tabel 4.9 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Pop dengan Kapasitas Pesan 50000 byte 75000 byte ... 60
Tabel 4.10 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Rock dengan Kapasitas Pesan 10000 byte 35000 byte ... 61
Tabel 4.11 Waktu Eksekusi untuk Plainteks Berbeda pada File Audio mp3 Bergenre
Rock dengan Kapasitas Pesan 50000 byte 75000 byte ... 61
Tabel 4.12 Rata-rata Waktu Eksekusi Enkripsi, Dekripsi, Penyisipan, dan Ekstraksi
pada Plaintext 1 KB ... 62
Tabel 4.13 Rata-rata Waktu Eksekusi Enkripsi, Dekripsi, Penyisipan, dan Ekstraksi
pada Plaintext 5 KB ... 62
Tabel 4.14 Rata-rata Waktu Eksekusi Enkripsi, Dekripsi, Penyisipan, dan Ekstraksi
pada Plaintext 10 KB ... 63
Tabel 4.15 Rata-rata Waktu Eksekusi Enkripsi, Dekripsi, Penyisipan, dan Ekstraksi
pada Plaintext 15 KB ... 63
Tabel 4.16 Rata-rata Waktu Eksekusi Enkripsi, Dekripsi, Penyisipan, dan Ekstraksi
pada Plaintext dengan Kelipatan 5 KB ... 64
Tabel 4.17 Kenaikan Waktu Eksekusi Untuk Enkripsi, Dekripsi, Penyisipan, Dan
Ekstraksi Pada Plainteks Dengan Kelipatan 5 KB ... 66
Tabel 4.18 Rata-Rata Keseluruhan Waktu Eksekusi Berdasar Genre File mp3... 67
Tabel 4.19 Tabel Pengujian Kekuatan Sinyal File Audio Steganografi pada Plainteks
Kelipatan 5 KB ... 68
Tabel 4.20 Tabel Pengujian Kualitas Suara File Audio Steganografi Pada Plainteks
xiii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Proses Enkripsi dan Dekripsi ... 5
Gambar 2.2 Contoh Skema Jaringan Fiestel ... 12
Gambar 2.3 Proses Whitening ... 16
Gambar 2.4 Blok Diagram Twofish ... 19
Gambar 2.5 Fungsi h ... 23
Gambar 2.6. Satu Putaran Fungsi F ... 26
Gambar 2.7 Diagram Sistem Steganografi... 29
Gambar 2.3 Struktur File mp3 ... 36
Gambar 2.8 Struktur Frame mp3 36 Gambar 3.1 Skema Implementasi Kriptografi dan Steganografi ... 42
Gambar 3.2 Skema Tahap Enkripsi dengan Agoritma Twofish ... 43
Gambar 3.3 Flowchart Proses Enkripsi Agoritma Twofish ... 44
Gambar 3.4 Skema Proses penyisipan pesan ... 46
Gambar 3.5 Flowchart Tahap Penyisipan Pesan ... 46
Gambar 3.6. Flowchart Proses Pencarian Byte Yang Sama ... 47
Gambar 3.7 Flowchart Penyisipan Pesan dengan Metode Penggantian Byte ... 49
Gambar 3.8 Skema Proses Ekstraksi Pesan ... 49
Gambar 3.9 Flowchart Proses Ekstraksi Pesan... 50
Gambar 3.10 Skema Tahap Dekripsi dengan Agoritma Twofish ...51
Gambar 3.11 Flowchart Proses Dekripsi Agoritma Twofish ... 51
Gambar 4.1 Grafik Rata-Rata Waktu Enkripsi Twofish... 64
Gambar 4.2 Grafik Rata-Rata Waktu Dekripsi Twofish ... 65
Gambar 4.3 Grafik Rata-Rata Waktu Penyisipan Chiperteks ke dalam File Audio .. 65
Gambar 4.4 Grafik Rata-Rata Waktu Ekstraksi Chiperteks dari Objek Stego ... 66
Gambar 4.5 Grafik Keseluruhan Waktu Eksekusi Berdasar Genre File Audio ... 67
DAFTAR LAMPIRAN
Halaman
15 BAB I
PENDAHULUAN
1.1Latar Belakang
Informasi atau pesan dapat menjadi sesuatu yang sangat berharga dan dijaga
kerahasiaannya. Semakin berkembangnya teknologi informasi, maka berbagai cara
juga berkembang untuk dapat mengetahui informasi yang bukan haknya. Maka dari
itu sejalan dengan berkembangnya teknologi informasi harus dibarengi dengan
perkembangan pengamanan kerahasiaan informasi.
Berbagai macam teknik digunakan untuk menjaga keamanan informasi, teknik
yang dapat digunakan adalah teknik kriptografi dan teknik steganografi. Kriptografi
adalah proses mengamankan pesan dengan mengubahnya ke dalam bentuk himpunan
karakter acak yang tidak dapat dibaca (Scheiner, 1996). Terdapat banyak algoritma
yang dapat digunakan dalam teknik kriptografi , diantaranya adalah Algoritma
Twofish. Algoritma Twofish merupakan cipher blok yang beroperasi pada 128
bit (Scheiner, 1998). Sebagaimana penelitian yang dilakukan oleh Alfath (2008) yang
membahas tentang algoritma Twofish, menyatakan bahwa algoritma tersebut
mempunyai level ketangguhan keamanan yang tinggi .
Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam
pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui (Rinaldi,
2004). Steganografi berbeda dengan kriptografi, kriptografi berfokus pada
bagaimana melindungi isi informasi agar tetap terjaga kerahasiaanya, sedangkan
steganografi berfokus pada cara meminimalkan kecurigaan tentang keberadaan
pesan rahasia.
Steganografi membutuhkan dua properti yaitu media penampung dan pesan
rahasia. Media penampung yang umum digunakan adalah media gambar, audio
dan video. Pesan yang disembunyikan dapat berupa sebuah teks, gambar, suara,
maupun video. Perkembangan dunia multimedia membuat file multimedia populer
digunakan sebagai media penampung pesan , salah satunya adalah fileaudio. Media
penampung berformat audio dapat berupa Wideband Angular Vibration Experiment
(.wav), Motion Picture Expert GroupAudioStreamLayer III (.mp3), dll.
Menurut jurnal yang ditulis oleh Herny dan Setyawan (2010) format mp3
berukuran lebih kecil dibanding format audio lain dan mempunyai kualitas suara
yang setara dengan kualitas CD serta dapat didistribusikan dengan mudah dan
merupakan berkas yang sangat umum dikenal oleh masyarakat pengguna informasi,
sehingga jika berkas tersebut digunakan untuk media pembawa pesan dapat
meminimalkan kecurigaan bahwa berkas tersebut mengandung pesan rahasia
didalamnya.
Steganografi pada file audio dapat memanfaatkan metode Least Significant
Bit (LSB). Least Significant Bit merupakan metode penyembunyian informasi dengan
memodifikasi bit terakhir dari file carrier dengan bit-bit informasi dan hanya
menyebabkan perubahan nilai bit satu lebih tinggi atau satu lebih rendah. Berdasar
penelitian yang dilakukan oleh Ema (2009) disebutkan bahwa dengan metode LSB
pada file audio tidak terkompresi, keuntungan yang didapatkan adalah ukuran pesan
yang disisipkan relatif besar dan tidak mengakibatkan penurunan kualitas suara file
audio yang signifikan.
Pada penelitian Ema (2009), metode LSB digunakan pada steganografi file
audio tidak terkompresi tapi tidak melakukan proses enkripsi pada pesan yang
disisipkan. Berdasar penelitian Alfath (2008) menyebutkan bahwa algoritma Twofish
merupakan algortima yang mempunyai level ketangguhan keamanan yang tinggi.
Selain itu, dalam jurnal yang ditulis oleh Herny dan Setyawan (2010) disebutkan
bahwa file audio berformat mp3 merupakan file yang berukuran cukup kecil dan
umum dikenal oleh masyarakat sehingga dapat didistribusikan dengan mudah tanpa
menimbulkan kecurigaan apabila digunakan sebagai media penampung pada
steganografi. Berangkat dari penelitian-penelitian tersebut, penulis bermaksud untuk
melakukan penelitian penyisipan data pada berkas MP3 dengan metode LSB dengan
algoritma Twofish. Karena, jika proses steganalisis berhasil mendeteksi dan
menemukan pesan rahasia tersebut, pesan itu masih dapat diselamatkan karena masih
dalam keadaan terenkripsi, karena seorang steganalisis tidak berusaha untuk
melakukan dekripsi terhadap pesan rahasia yang tersembunyi dalam suatu media,
yang dilakukannya adalah berusaha menemukannya.
1.2Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan di atas, rumusan
masalah yang dikemukakan adalah:
a. Bagaimana menerapkan steganografi pada file audio mp3 dengan metode
Least Significant Bit (LSB) terhadap pesan terenkripsi dengan algoritma
Twofish.
b. Bagaimana menganalisis pengaruh variasi ukuran file audio dan ukuran pesan
teks yang ditinjau dari kapasitas pesan yang mampu ditampung file audio,
waktu eksekusi dan kualitas suara yang dihasilkan oleh file audio.
1.3Batasan Masalah
Dalam penelitian tugas akhir ini diberlakukan beberapa batasan masalah,
antara lain :
a. Pesan rahasia yang akan disisipkan berupa file jenis teks.
b. Media yang digunakan sebagai penampung pesan adalah fileaudio berformat
mp3
1.4Tujuan Penelitian
Tujuan dari penelitian tugas akhir ini adalah penerapan steganografi pada file
audio mp3 dengan metode Least Significant Bit (LSB) terhadap pesan terenkripsi
dengan algoritma Twofish dan dilakukan pengujian untuk variasi ukuran file audio
dan ukuran pesan teks yang ditinjau dari kapasitas pesan yang mampu ditampung file
audio, waktu eksekusi dan kualitas suara yang dihasilkan file audio.
1.5Manfaat Penelitian
Manfaat penelitian tugas akhir ini adalah meningkatkan keamanan pesan
dengan mengenkripsi pesan teks menggunakan algoritma Twofish dan meminimalkan
kecurigaan tentang keberadaan pesan dengan menyisipkan pesan tersebut dalam file
audio dengan steganografi menggunakan metode LSB sehingga hal tersebut dapat
dijadikan alternatif solusi dalam hal pengiriman pesan rahasia dengan aman.
1.6Sistematika Penulisan
Penelitian ini akan disusun dengan sistematika sebagai berikut :
BAB I PENDAHULUAN
Menguraikan secara umum tentang latar belakang masalah, rumusan masalah,
pembatasan masalah, tujuan, manfaat atas penelitian dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Berisi tentang tinjauan pustaka sebagai acuan, dasar teori yang digunakan, serta
rencana penelitian yang dilakukan.
BAB III METODOLOGI PENELITIAN
Menguraikan langkah-langkah rinci dari penelitian yang dilakukan meliputi metode
yang dipakai, algoritma, dan bagaimana mengimplementasikannya.
BAB IV HASIL DAN PEMBAHASAN
Berisi tentang implementasi pengujian dari aplikasi yang telah dibuat dengan
menggunakan contoh data yang telah disiapkan untuk kemudian dilakukan analisa
terhadap hasil dari implementasi yang telah dilakukan.
BAB V PENUTUP
Berisi kesimpulan penelitian yang diambil sesuai analisa hasil pengujian serta
5 BAB 2
TINJAUAN PUSTAKA
2.1Dasar Teori
2.1.1 Kriptografi
Kriptografi merupakan ilmu sekaligus seni untuk menjaga kerahasiaan pesan
(data atau informasi) dengan cara menyamarkannya menjadi bentuk tersandi yang
tidak bermakna (Rinaldi, 2006). Pesan yang dirahasiakan dinamakan plaintext,
sedangkan pesan hasil penyamaran dinamakan Ciphertext. Proses penyamaran dari
plaintext ke ciphertext disebut enkripsi (encryption) dan proses pembalikan dari
ciphertext ke plaintext disebut dekripsi (decryption). Gambar 2.1 memperlihatkan
diagram proses enkripsi dan dekripsi.
Gambar 2.1 Proses Enkripsi dan Dekripsi
2.1.1.1Terminologi Kriptografi
Terminologi kriptografi diuraikan sebagai berikut (Schneier, 1996) :
a. Pengirim dan Penerima pesan
Seorang pengirim pesan (sender) ingin mengirim pesan kepada seorang
penerima (receiver). Pengirim menginginkan pesan dapat dikirim secara aman,
yaitu ia yakin bahwa pihak lain tidak dapat membaca isi pesan.
b. Pesan, Plaintext, dan Ciphertext
Pesan adalah data atau informasi yang dapat dimengerti maknanya. Nama lain
untuk pesan adalah plaintext (plaintext). Agar pesan tidak dapat dimengerti
maknanya oleh pihak lain, maka pesan disandikan ke bentuk lain. Bentuk pesan
yang tersandi disebut ciphertext (ciphertext).
c. Enkripsi dan Dekripsi
Proses menyandikan plaintext menjadi ciphertext disebut enkripsi
(encryption). Proses mengembalikan ciphertext menjadi plaintextnya disebut
dekripsi (decryption).
d. Kriptografi
Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan
(message). Praktisi (pengguna kriptografi) disebut kriptografer (cryptographer).
e. Algoritma kriptografi dan Kunci
Algoritma kriptografi adalah aturan fungsi matematika untuk enkripsi dan
dekripsi. Sedangkan kunci adalah parameter yang digunakan untuk transformasi
enkripsi dan dekripsi.
f. Sistem Kriptografi
Sistem kriptografi adalah algoritma kriptografi, plaintext, ciphertext, dan
kunci.
g. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditransmisikan.
h. Kriptanalisis dan Kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan
Ciphertext menjadi plaintext tanpa mengetahui kunci yang diberikan, pelakunya
disebut kriptanalis. Sedangkan kriptologi (cryptology) adalah studi mengenai
kriptografi dan kriptanalisis.
2.1.1.2Teknik Kriptografi
Teknik yang digunakan pada kriptografi ada dua, yaitu : kunci simetris dan
kunci asimetris (Rinaldi,2004).
a. Algoritma Kunci Simetris
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini
Kelebihan :
Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi
membutuhkan waktu yang singkat.
Ukuran kunci simetri relatif pendek.
Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang
lebih kuat.
Otentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima,
karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
Kekurangan :
Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang
berkomunikasi harus menjaga kerahasisan kunci ini.
Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
Contoh algoritma : Twofish dan Camellia
Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat
dikelompokkan menjadi dua kategori yaitu Cipher aliran (streamcipher) dan Cipher
blok(blockcipher).
1. Cipher aliran (streamcipher)
Algoritma kiptografi beroperasi pada plaintext/ciphertext dalam bentuk bit
tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit.
Cipher aliran mengenkripsi satu bit setiap kali tranformasi atau byte per byte (1
karakter = 1 byte). Nama lain untuk cipherstream adalah cipher status sebab enkripsi
tiap bit bergantung pada status saat ini (current state).
Cipher aliran pertama kali diperkenalkan oleh Vernam melalui algoritmanya
yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one-time pad
cipher, yang dalam hal ini karakter diganti dengan bit (0 dan 1). Ciphertext diperoleh
dengan melakukan penjumlahan modulo 2 satu bit plaintext dengan satu bit kunci.
ci = (pi + ki) mod 2 (1)
Yang dalam hal ini :
pi : bit plaintext
ki : bit kunci
ci : bit ciphertext.
Plaintext diperoleh dengan melakukan penjumlahan modulo 2 satu bit ciphertext
dengan satu bit kunci :
pi = (ci + ki) mod 2
oleh karena itu kita dapat menyatakan bahwa cipher aliran merupakan aproksimasi
dari unbreakable cipher yaitu on-time pad cipher.
Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit dengan
operator XOR, maka pada cipher aliran, bit hanya mempunyai dua buah nilai,
sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut : berubah
atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci enkripsi yang disebut
aliran kunci (keystream). Aliran kunci dibangkitkan dari sebuah pembangkit yang
dinamakan pembangkit aliran-kunci (keystream generator). Aliran kunci di XOR-kan
dengan aliran bit-bit plaintext -bit
ciphertext.
ci = pi ki (2)
disisi penerima, bit-bit ciphertext di XOR-kan dengan aliran kunci yang sama untuk
menghasilkan bit-bit plaintext :
pi = ci ki
Contoh :
Plaintext : 1100101
Aliran kunci : 1000110
Maka ciphertext didapatkan dengan meng-XOR-kan bit-bit plaintext dengan
aliran kunci pada posisi yang berkoresponden, sehinga didapatkan :
2. Cipher blok (blockcipher)
Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk blok
bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya
sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti
algoritma enkripsi memerlukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit
dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit setiap kali.
Pada cipher blok, rangkaian bit-bit plaintext dibagi menjadi blok-blok bit
dengan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma
enkripsi menghasilkan blok ciphertext yang pada kebanyakan sistem
kriptografi simetri berukuran sama dengan blok plaintext.
Dengan blok cipher, blok plaintext yang sama akan dienkripsi menjadi blok
ciphertext yang sama bila digunakan kunci yang sama pula. Ini berbeda
dengan cipher aliran dimana bit-bit plaintext yang sama akan dienkripsi
menjadi bit-bit ciphertext yang berbeda setiap kali dienkripsi.
Misalkan blok plaintext (P) yang berukuran m bit dinyatakan sebagai vektor
P = (p1, p2 pm)
yang dalam hal ini pi m, dan blok ciphertext
(C) adalah
C = (c1, c2 cm)
yang dalam hal ini ci m.
Bila plaintext dibagi menjadi n buah blok, barisan blok-blok plaintext
dinyatakan sebagai (P1, P2 Pn). Untuk setiap blok plaintext Pi, bit-bit
penyusunnya dapat dinyatakan sebagai vektor
Pi = (pi1, pi2 pim)
Enkripsi dan dekripsi dengan kunci K dinyatakan berturut-turut dengan
persamaan:
EK(P) = C , DK(C) = P.
dimana, E : Enkripsi C : Chipertext
D : Dekripsi P : Plaintext
b. Algoritma Kunci Asimetris
Algorita kunci asimetris adalah suatu algoritma dimana kunci kriptografi yang
digunakan dibuat sepasang, satu kunci untuk enkripsi dan satu kunci untuk dekripsi.
Kunci untuk enkripsi diumumkan kepada publik dan bersifat tidak rahasia sehingga
dinamakan kunci publik (public-key). Kunci untuk dekripsi bersifat rahasia sehingga
dinamakan kunci privat (private-key). Walaupun kunci publik diketahui secara umum
namun sangat sukar mengetahui kunci privat yang digunakan.
Kelebihan :
Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang
berkomunikasi tetapi otentikasi kunci publik tetap harus terjamin. Tidak ada
kebutuhan mengirim kunci kunci privat sebagaimana pada sistem simetri.
Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode
waktu yang panjang.
Kekurangan :
Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri,
karena enkripsi dan dekripsi menggunakan bilangan yang besar dan
melibatkan operasi perpangkatan yang besar.
Ukuran ciphertext lebih besar daripada plaintext (bisa dua sampai empat kali
ukuran plaintext).
Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang,
maka ciphertext tidak memberikan informasi mengenai otentikasi pengirim.
Contoh Algoritma : RSA (Rivest-Shamir-Adleman) dan El-Gamal.
2.1.1.3.Prinsip-prinsip Perancangan Cipher Blok
Perancangan algoritma kriptografi berbasis blok mempertimbangkan
1. Prinsip Confusion dan Diffusion dari Shannon.
Confussion bertujuan untuk menyembunyikan hubungan apapun yang ada
antara plaintext, ciphertext, dan kunci. Prinsip confusion membuat kriptanalis
frustasi untuk mencari pola-pola statistik yang muncul pada ciphertext. Confusion
yang bagus membuat hubungan statistik antara plaintext, ciphertext, dan kunci
menjadi sangat rumit.
Diffusion menyebarkan pengaruh satu bit plaintext atau kunci ke sebanyak
mungkin ciphertext. Sebagai contoh, pengubahan kecil pada plaintext sebanyak
satu atau dua bit menghasilkan perubahan pada ciphertext yang tidak dapat
diprediksi.
2. Cipher berulang (Iterated Cipher)
Fungsi transformasi sederhana yang mengubah plaintext menjadi
ciphertext diulang sejumlah kali. Pada setiap putaran digunakan sub-kunci
(subkey) atau kunci putaran (round key) yang dikombinasikan dengan plaintext.
Cipher berulang dinyatakan sebagai
Ci= f(Ci 1, Ki) (3)
dimana,
i r (r adalah jumlah putaran).
Ki= sub-kunci (subkey) pada putaran ke-i
f = fungsi transformasi (didalamnya terdapat operasi substitusi,
permutasi, dan/atau ekspansi, kompresi). Plaintext dinyatakan dengan C0 dan
ciphertext dinyatakan dengan Cr.
3. Jaringan Feistel (Feistel Network)
Jaringan Feistel banyak dipakai pada algoritma kriptografi DES, LOKI,
GOST, FEAL, Lucifer, Blowfish, Twofish, dan lain-lain karena model ini bersifat
reversible untuk proses enkripsi dan dekripsi. Sifat reversible ini membuat kita
tidak perlu membuat algoritma baru untuk mendekripsi ciphertext menjadi
plaintext. Secara formal, operasi transformasi pada jaringan Feistel dapat
dinyatakan sebagai:
Li = Ri 1 (4)
Ri = Li 1 Xor f(Ri 1, Ki) i= 1,2,3,..,r (5)
dimana :
Li : Bagian plaintext kiri ke-i
Ri : Bagian plaintext kanan ke-i
Ki : Kunci untuk putaran ke-i
f : Fungsi Transformasi
Skema Jaringan Fiestel dapat dilihat pada Gambar 2.1 .
4. Kunci lemah (weak key)
Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan
antara enkripsi dan dekripsi. Dekripsi terhadap ciphertext tetap menghasilkan
plaintext semula, namun enkripsi dua kali berturut-turut terhadap plaintext akan
menghasilkan kembali plaintextnya. Persamaan berikut menunjukan fenomena
kunci lemah:
EKL(P) = C untuk fungsi enkripsi,dan
DKL(C) = EKL(C ) = P untuk fungsi dekripsi.
Cipher blok yang bagus tidak mempunyai kunci lemah.
5. Kotak-S (S-boxes)
Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan
satu atau lebih bit dengan satu atau lebih bit yang lain. Pada kebanyakan
algoritma cipher blok, kotak-S memetakan m bit masukan menjadi n bit keluaran,
sehingga kotak-S tersebut dinamakan kotak m n S-box. Kotak-S merupakan
satu-satunya langkah nirlanjar di dalam algoritma, karena operasinya adalah
look-up table. Masukan dari operasi look-up table dijadikan sebagai indeks kotak-S,
dan keluarannya adalah entry di dalam kotak-S. Contoh S-Boxes dapat dilihat
pada Tabel 2.1 yang merupakan contoh kotak-S dalam algoritma DES yaitu 6 x 4
S-box yang berarti memetakan 6 bit masukan menjadi 4 bit keluaran.
Tabel 2.1 Kotak S-Boxes
Baris diberi nomor dari 0 sampai 3. Kolom diberi nomor dari 0 sampai 15.
Masukan untuk proses substitusi adalah 6 bit, yaitu b1b2b3b4b5b6. Nomor baris
dari tabel ditunjukkan oleh string bit b1b6 (menyatakan 0 sampai 3 desimal).
Sedangkan nomor kolom ditunjukkan oleh string bit b2b3b4b5 (menyatakan 0
sampai 15 desimal). Misalnya masukan adalah 110100 Nomor baris tabel = 10
(artinya baris 2 desimal) .Nomor kolom tabel = 1010 (artinya kolom 10 desimal).
Jadi, substitusi untuk 110100 adalah entry pada baris 2 dan kolom 10, yaitu 0100
(atau 4 desimal).
2.1.2 Algoritma Twofish
Algoritma Twofish merupakan algoritma kunci simetris block cipher dengan
blok masukan 128 bit dan kunci 128 bit, 192 bit, dan 256 bit (Schneier, 1998). Pada
tahun 1972 dan 1974, National of Standart (yang sekarang bernama NIST)
mengumumkan adanya standar enkripsi, yaitu Data Encryption Standart (DES) yang
sangat beralasan karena penggunaannya yang luas dan merupakan algoritma yang
sangat sukses di dunia. Dalam proses perkembangannya ternyata key-key dalam DES
dirasa terlalu pendek bagi keamanan komersial sehingga membuat gusar para
closed door
NIST mengumumkan Advanced Encryption Standard (AES) pada tahun 1997
[NIST97a].
Salah satu kandidat Advanced Encryption Standard (AES) adalah algoritma
Twofish. Twofish memenuhi semua kriteria yang dibutuhkan NIST, yaitu blok 128
bit, kunci 128 bit, 192 bit dan 256 bit, efisien pada platform manapun dan
lain-lain, serta beberapa desain berat lainnya Twofish dapat melakukan:
a. Melakukan enkripsi data pada 285 siklus per block di atas Pentium Pro
setelah menjalankan keysetup 12700 siklusclock.
b. Melakukan enkripsi data pada 860 siklus per block di atas Pentium Pro
setelah menjalankan keysetup 1250 siklus clock.
c. Melakukan enkripsi data pada 26500 siklus per block di atas sebuah 6805
smart card setelah mejalankan keysetup 1750 siklus clock.
2.1.2.1Unsur Pembangun Algoritma Twofish
Unsur pembangun Twofish terdiri dari Feistel Network (Jaringan Feistel),
Transform (PHT), Whitening, dan Key Schedule (penjadwalan kunci). Berikut
merupakan penjabaran dari unsur-unsur pembangun Twofish (Schneier, 1998) :
1. Feistel Network (Jaringan Feistel)
Schneier menjelaskan bahwa Feistel Network adalah metoda umum untuk
mentransformasi suatu fungsi menjadi bentuk permutasi. Bagian paling fundamental
dari Jaringan Feistel adalah Fungsi F yaitu sebuah pemetaan key-dependent dari
suatu input string menjadi output string. Fungsi F selalu tidak linear dan mungkin
tidak surjektif:
(6)
dimana:
n : ukuran blok dari jaringan Fiestel
F : fungsi yang menerima n=2 bit dari blok N bit sebagai kunci input dan
menghasilkan output n=2 bit
Setiap putaran, blok sumber adalah input fungsi F, dan dari fungsi F
di-XORkan dengan blok target, lalu dua blok ini dipertukarkan sebelum masuk ke
putaran berikutnya. Dua putaran pada jaringan Fistel disebut satu cycle, dan dalam
satu cycle setiap bit dari blok teks telah dimodifikasi satu kali. Pada Twofish
dilakukan Feistel Network sebanyak 16 kali atau 8 cycle dengan fungsi bijektif F.
2. S-Boxes (Kotak S)
Sebuah S-boxes adalah operasi subsitusi table-driven non linear yang
digunakan dalam block cipher. S-boxes bervariasi antara setiap ukuran input dan
ukuran outputnya, dan bisa diciptakan secara random atau dengan algoritma.
Twofish menggunakan empat bijekktif, key-dependent dan 8x8-bit S-boxes. S-boxes
ini dibuat menggunakan dua permutasi 8x8-bit dan material key.
3. Matrix MDS (Maximum Distance Separable)
Matrix Maximum Distance Separable (MDS) melalui sebuah pemetaan linear
dari elemen field a ke elemen field b, menghasilkan campuran dari vektor a+b
elemen, dengan jumlah minimum angka tidak nol dalam vektor tidak nol paling
Distance yang
berbeda antara dua vektor yang berbeda yang dihasilkan oleh MDS paling kurang
b+1. Pemetaan MDS bisa direpresentasikan oleh matriks MDS yang terdiri dari a
x b elemen.
4. Pseudo-Hadamard Transform (PHT)
Transformasi Pseudo-Hadamard (PHT) adalah operasi sederhana yang
bekerja dengan cepat dalam software. Diberikan dua input, a dan b, dan PHT 32 bit
didefinisikan :
A0 = a + b mod 232 (7)
B0 = a + 2b mod 232 (8)
Twofish menggunakan PHT 32 bit untuk melakukan mixing terhadap
outputnya dari dua buah fungsi g 32 bit paralel. PHT ini dapat dieksekusi
dalam dua opcode diatas kebanyakan microprocessor modern, termasuk keluarga
Pentium.
5. Whitening
Schneier menjabarkan bahwa whitening merupakan teknik meng-XOR-kan
key material sebelum putaran pertama dan sesudah p
serangan terhadap Twofish, terbukti bahwa whitening secara substansial
meningkatkan kesulitan menyerang cipher, dengan jalan menyembunyikan input
spesifik untuk awal dan akhir putaran dari Twofish. Twofish meng-XOR-kan 128 bit
sub kunci sebelum putaran Fiestel pertama dan 128-bit lagi setelah putaran Fiestel
terakhir. Proses Whitening dapat dilihat pada Gambar 2.3.
6. Key Schedule (Penjadwalan Kunci)
Key schedule adalah suatu cara dimana bit-bit key diubah menjadi key-key
bulat yang dapat digunakan oleh chipper. Twofish memerlukan material key yang
sangat banyak, dan memiliki key schedule yang rumit. Jadi secara singkat,
penjadwalan kunci adalah proses pengacakan kunci untuk melakukan proses
enkripsi sehingga tingkat kerumitannya menjadi tinggi.
2.1.2.2Struktur Algoritma Twofish
Twofish menggunakan sebuah Struktur Feistel-like 16-round dengan
tambahan whitening pada masukan dan keluaran. Satu-satunya unsur non-Feistel
adalah 1-bit rotasi. Perputaran dapat dipindah ke dalam fungsi F untuk membuat
suatu struktur Feistel murni, tapi memerlukan suatu tambahan perputaran
kata-kata yang tepat sebelum langkah keluaran whitening. Plaintext 128 bit dipecah
menjadi empat word 32-bit yaitu P0, P1, P2, dan P3. P0 dan P1 akan menjadi bagian
kiri, sedangkan P2 dan P3 akan menjadi bagian kanan. Plaintext tersebut dipecah
menggunakan konvensi little-endian.
(6)
summation
P = Inputplaintext yang dipecah menjadi 4 word
j = indeks dengan batas bawah 0 dan batas atas 3
Plaintext akan melalui proses input whitening yaitu input akan di-XOR
dengan empat word kunci yang telah terjadwal yaitu K0, K1, K2, dan K3. Secara
formalnya adalah sebagai berikut :
(7)
R = Proses Whitening
P = Inputplaintext yang dipecah menjadi 4 word
K = Kunci terjadwal
= XOR
Proses berikutnya input akan melalui proses pada fungsi F yang meliputi
didalamnya adalah fungsi g dan dilanjutkan dengan PHT (Pseudo Hadamard
Transform), dan dilakukan penambahan hasil PHT dengan kunci. Proses fungsi F
tersebut dilakukan secara bertahap.
Pada setiap 16 putaran, dua word pertama digunakan sebagai masukan kepada
fungsi F, yang juga mengambil angka bulat itu sebagai masukan. Word ketiga
di-XOR dengan keluaran pertama F dan kemudian diputar ke kanan satu bit. Word
keempat diputar ke kiri satu bit kemudian di-XOR dengan kata keluaran F yang kedua
. Akhirnya, keduanya saling ditukar menghasilkan persamaan :
(Fr,0,Fr,1) = F(Fr,0,Fr,1,r) (8)
Rr+1,0 = ROR(Rr,2 Fr,0,1) (9)
Rr+1,1 = ROL(Rr,3,1) Fr,1 (10)
Rr+1,2 = Rr,0 (11)
Rr+1,3 = Rr,1 (12)
ROR dan ROL adalah berfungsi memutar argumentasi
pertama (32-bit word) ke kanan dengan angka bit-bit diindikasikan dengan
argumentasi keduanya. Langkah output whitening
terakhir dan meng-XOR-kan 4 word dengan 4 kunci yang diperluas yaitu K0, K1, K2,
dan K3. Empat word dari ciphertext kemudian ditulis sebagai 16 byte c0 15.
Gambar 2.4 Blok Diagram Twofish (Schneier, 1998)
1. Fungsi F
Fungsi F adalah suatu permutasi key-dependent di atas nilai 64-bit. Untuk
mengambil tiga argumentasi, dua masukan R0 dan R1, dan angka bulat r digunakan
untuk memilih subkey yang sesuai. R0 yang dilewati fungsi g, menghasilkan T0. i
diputar 8 bit ke kanan kemudian melewati fungsi g untuk menghasilkan T1. Hasil T0
dan T1 selanjutnya dikombinasikan dalam sebuah PHT dan ditambahkan 2 word dari
kunci yang diperluas menghasilkan persamaan :
T0 = g(R0) (13)
blok kunci pada output (PHT masih dilakukan.)
2. Fungsi g
Fungsi g merupakan inti dari Twofish. Word masukan X dipecah menjadi
empat byte. Masing-masing byte dijalankan melewati S-boxkey-dependent.
Masing-masing S-box adalah bijective, mengambil 8 bit masukan, dan menghasilkan 8 bit
keluaran. Ke empat hasil diinterpretasikan sebagai vektor yang panjangnya 4 di atas
GF (28), dan dikalikan dengan yang matriks MDS 4x4 (menggunakan bidang GF (28)
untuk perhitungannya). Untuk menghasilkan vektor diinterpretasikan sebagai 32-bit
sebagai hasil dari fungsi g :
xi = X/28i mod 28
dengan baik, kita harus menetapkan koresponden antara nilai-nilai byte dan
elemen-elemen bidang GF (28). Kita merepresentasikan GF (28) sebagai GF(28)[x]/v(x) di
mana v(x)=x8+x6+x5+x3+1 adalah suatu polynomial primitif dari 8 tingkat di atas
byte 7i 0 aixi. Ini adalah beberap penambahan di
Di mana elemen-elemen ditulis sebagai nilai-nilai byte heksadesimal.
3. Penjadwalan Kunci
Penjadwalan kunci harus menyediakan 40 buah kunci yang diperluas
K0 39, dan 4 buah S-Box key-dependent yang digunakan di dalam fungsi g.
Twofish didefinisikan untuk kunci-kunci dengan panjang N= 128, N= 192, dan N=
256. Beberapa kunci yang lebih pendek dari 256 bit dapat digunakan oleh lapisannya
dari nol hingga yang lebih besar yang didefinisikan sebagai panjang kunci. Kita
mendefinisikan k=N/64. Kunci M terdiri dari 8k byte m0 8k-1. Byte-byte yang
pertama diubah ke dalam 2k word 32 bit masing-masing adalah:
Mi =
Sepertiga vektor word dari panjang k adalah juga diperoleh dari kunci itu.
3
sebagaimana yang digunakan untuk perkalian matriks MDS. Dalam pemetaan ini,
matriks RS ditunjukkan sebagai berikut :
RS =
3.1 Penambahan Panjang Kunci
Twofish dapat menerima kunci-kunci dengan panjang byte di atas 256 bit.
Untuk ukuran-ukuran kunci yang tidak didefinisikan di atas, kunci diisi pada bagian
akhir dengan nol byte. Sebagai contoh, suatu kunci 80-bit m0 9 akan diperluas
dengan mengatur mi pada kunci
3.2 Fungsi h
Fungsi h adalah suatu fungsi yang mengambil dua input 32 bit word X dan
sebuah daftar L = ( L0 k-1) dari word X 32 dengan panjang k dan menghasilkan
satu word pada outputnya. Pada setiap langkah, empat byte masing-masing melintasi
suatu fixed S-Box, dan di-XOR dengan sebuah byte dari daftar. Akhirnya, byte-byte
sekali lagi digeser melewati sebuah fixed S-box dan empat byte itu dikalikan dengan
matriks MDS seperti halnya dalam g.
li,j = 8
2 /
i
L mod 28 (22)
xj = j
X /28 mod 28 (23)
- XOR diterapkan :
yk,j = xj (24)
Fungsi h ditunjukkan pada Gambar 2.5 sebagai berikut :
Gambar 2.5 Fungsi h
:
Dalam seluruh kasus didapatkan :
y0 = q1[q0[q0[y2,0] l1,0] l0,0] (25)
y1 = q0[q0[q1[y2,1] l1,1] l0,1] (26)
y2 = q0[q1[q0[y2,2] l1,2] l0,2] (27)
y3 = q1[q1[q1[y2,3] l1,3] l0,3] (28)
Di sini, q0 dan q1 ditetapkan permutasi di atas nilai 8-bit yang akan didefinisikan
segera. Menghasilkan vektor yang merupakan perkalian matriks MDS, seperti halnya
dalam fungsi g :
g(x)= h(X; S) (30)
S-Box Key-Dependentsi dibentuk oleh pemetaan dari
xi ke yi di dalam fungsi h, di mana daftar L = vektor S yang diperoleh dari kunci itu.
3.4 Kunci yang Diperluas Kj
Kunci yang diperluas didefinisikan menggunakan fungsi h :
= 224 + 216 + 28 + 20 (31)
Ai = h(2 ,Me) (32)
Bi = ROL(h((2i o),8) (33)
K2i = (Ai + Bi) mod 232 (34)
K2i+1 = ROL((Ai + 2Bi) mod 232,9) (35)
Konstanta digunakan untuk menduplikat byte yang mempunyai properti untuk i=
jika terdiri dari empat byte yang sama, masing-masing dengan nilai i.
Fungsi h diberlakukan bagi word jenis ini. Untuk Ai nilai-nilai byte itu adalah 2i, dan
argumentasi yang kedua dari h adalah Me. Bi dihitung dengan cara yang sama
menggunakan 2i+1 sebagai byte nilai dan Mo sebagai argumentasi yang kedua,
dengan suatu putaran ekstra di atas 8 bit. Nilai-nilai Ai dan Bi Dua dikombinasikan
dalam PHT. Salah satu dari hasil itu selanjutnya diputar dengan 9 bit. Kedua hasil
tersebut membentuk dua buah kunci yang diperluas.
3.5 Permutasi q0dan q1
Permutasi q0 dan q1 ditetapkan sebagai permutasi di atas nilai-nilai 8 bit dan
dibangun dari 4-bit permutasi yang berbeda. Untuk nilai masukan x didefinisikan
sebagai nilai output y sebagai berikut :
a0, b0 = x/16 , x mod 16
a1 = a0 b0
b1 = a0 ROR1(b0,1) 8a0 mod 16
a2, b2 = t0[a1],t1[b1]
a3 = a2 b2
b3 = a2 ROR1(b2,1) 8a2 mod 16
a4, b4 = t2[a3],t3[b3]
y = 16b4 + a4 (36)
di mana ROR4 adalah suatu fungsi yang serupa dengan ROR yang merupakan putaran
nilai 4-bit. Pertama, byte dipecah menjadi dua bagian dan dikombinasikan secara
bijective. Masing-masing bagian melintasi 4-bitfixed S-Box. Ini diikuti oleh yang lain.
Akhirnya, dua bagian dikombinasikan kembali ke dalam satu byte. Untuk permutasi
q0 S-Box 4-bit :
t0 = [8 1 7 D 6 F 3 2 0 B 5 9 E C A 4]
t1 = [E C B 8 1 2 3 5 F 4 A 6 7 0 9 D]
t2 = [B A 5 E 6 D 9 0 C 8 F 3 2 4 7 1]
t3 = [D 7 F 4 1 2 6 E 9 B 3 0 8 5 C A]
di mana masing-masing S-Box 4-bit diwakili oleh daftar masukan yang menggunakan
notasi hexadecimal
yang sama, untuk q1 S-Box 4-bit :
t0 = [2 8 B D F 7 6 E 3 1 9 4 0 A C 5]
t1 = [1 E 2 B 4 C 3 7 6 D A 5 F 9 0 8]
t2 = [4 C 7 5 1 6 9 A 0 E D 8 2 B 3 F]
t3 = [B 9 5 1 C 3 D E 6 4 7 F 2 0 8 A]
Gambar 2.6. Satu putaran fungsi F (kunci 128-bit)
2.1.3 Steganografi
Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam
pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui (Rinaldi,
2004). Kata steganorafi berasal
covered writing). Steganografi membutuhkan dua properti: wadah
penampung dan data rahasia yang akan disembunyikan. Steganografi digital
menggunakan media digital sebagai wadah penampung, misalnya citra berformat
JPG, GIF, BMP, atau di dalam musik MP3, atau bahkan di dalam sebuah film dengan
format WAV atau AVI. Data rahasia yang disembunyikan juga dapat berupa citra,
suara, teks, atau video. Semua dapat dijadikan tempat bersembunyi, asalkan berkas
tersebut memiliki bit-bit yang tidak signifikan atau terdapat redundant bits yang
dapat dimodifikasi. Setelah dimodifikasi, berkas media tersebut tidak akan terganggu
fungsinya dan kualitasnya tidak akan jauh berbeda dengan aslinya.
2.1.3.1Karakteristik Steganografi
Steganografi dikenal dengan nama data hiding atau data embedding, yang
merupakan rangkaian proses dalam menyembunyikan data ke dalam berbagai media,
seperti citra, audio atau teks dengan meminimalisir penampakan degradasi sinyal
media penampung (Forouzan, 2008). Hal ini tampak familiar dengan enkripsi.
Namun jika ditelusuri lebih jauh maka penyembunyian data dalam steganografi
sangat kontras dengan kriptografi. Perbedaannya terletak pada bagaimana proses
penyembunyian data dan hasil akhir dari proses tersebut.
Kriptografi merahasiakan makna pesan sementara keberadaan pesan tetap
dapat diamati oleh indera manusia. Kriptografi melakukan proses pengacakan data
asli sehingga menghasilkan data terenkripsi yang benar-benar acak dan berbeda
dengan aslinya. Sedangkan steganografi menyembunyikan keberadaan pesan tersebut,
data disisipkan dalam media penampung tanpa mengubah keadaan media
penampung tersebut. Dengan kata lain keluaran steganografi ini memiliki bentuk
persepsi yang sama dengan bentuk aslinya. Diagram steganografi ditunjukkan pada
Gambar 2.7 Diagram Sistem Steganografi (Forouzan, 2008)
Penyisipan data rahasia ke dalam media digital harus memperhatikan
beberapa aspek keamanan sebagai berikut (Renaldi, 2004) :
a. Fidelity
Mutu media penampung tidak jauh berubah. Setelah penambahan data rahasia,
berkas hasil steganografi tidak mengalami degradasi yang signifikan, sehingga
perubahan atau degradasi tersebut tidak dapat dipersepsi oleh indera manusia. Pada
kasus audio steganografi, audio hasil steganografi masih dapat didengar dengan baik.
Pengamat tidak menyadari bahwa di dalam audio tersebut terdapat data rahasia. Atau
dengan kata lain penyisipan data rahasia tidak mempengaruhi kualitas sinyal asli,
sehingga keberadaan pesan tidak dapat ditangkap oleh pendengaran manusia.
b. Recovery
Data yang disembunyikan harus dapat diungkapkan kembali (recovery).
Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia
didalam media penampung harus dapat diambil kembali untuk digunakan lebih lanjut.
c. Robustness
Robustness merupakan salah satu isu desain algoritma steganografi yang
utama. Data rahasia yang disisipkan harus tahan terhadap pengolahan sinyal yang
mungkin dilakukan termasuk konversi digital-analog dan analog-digital, linear dan
non-linear filtering, kompresi dan perubahan ukuran (scaling).
2.1.3.2Terminologi dalam Steganografi
Terdapat beberapa istilah yang berkaitan dengan steganografi (Rinaldi,
2004) :
1. Hiddentext atau embedded message: pesan atau informasi yang
disembunyikan.
2. Covertext atau cover-object: pesan atau objek yang digunakan untuk
menyembunyikan embedded message.
3. Stegotext atau stego-object: pesan atau objek yang sudah berisi embedded
message.
Steganografi pada media digital baik hiddentext atau covertext dapat
berupa teks, gambar, audio, maupun video.
2.1.3.3Metode dalam Steganografi
Proses penyisipan pesan rahasia dalam sistem steganografi pada dasarnya
dilakukan dengan mengidentifikasi media digital pembawa pesan, yaitu bit redundant
yang mana dapat dimodifikasi tanpa merusak integritas dari media digital itu sendiri.
Pengaplikasikan steganografi pada berkas digital dapat dilakukan dengan
berbagai metode. Berikut adalah beberapa metode yang dapat digunakan (Yusrian,
2007) :
a. Least Significant Bit (LSB).
LSB lazim digunakan dalam teknik digital steganografi yaitu mengganti LSB
input setiap samplingnya dengan data yang dikodekan. Dengan metode ini
keuntungan yang didapatkan adalah ukuran pesan yang disispkan relatif besar, namun
berdampak pada hasil filedigital yang berkualitas kurang dengan banyaknya noise.
b. Phase Coding
Metode phase coding merekayasa fasa dari sinyal masukan. Teori yang
digunakan adalah dengan mensubstitusi awal fasa dari tiap awal segment dengan fasa
yang telah dibuat sedemikian rupa dan merepresentasikan pesan yang disembunyikan.
Fasa dari tiap awal segment ini dibuat sedemikian rupa sehingga setiap segmen masih
menghasilkan keluaran yang jauh lebih baik daripada metode pertama namun
dikompensasikan dengan kerumitan dalam realisasinya.
c. Spread Spectrum
Metode yang ketiga adalah penyebaran spektrum. Dengan metode ini pesan
dikodekan dan disebar ke setiap spektrum frekuensi yang memungkinkan. Maka dari
itu akan sangat sulit bagi yang akan mencoba memecahkannya kecuali ia memiliki
akses terhadap data tersebut atau dapat merekonstruksi sinyal random yang
digunakan untuk menyebarkan pesan pada range frekuensi.
d. Echo Hiding
Metode terakhir yang sering digunakan adalah menyembunyikan pesan
melalui teknik echo. Teknik menyamarkan pesan ke dalam sinyal yang membentuk
echo. Kemudian pesan disembunyikan dengan menvariasikan tiga parameter dalam
echo yaitu besar amplitude awal, tingkat penurunan atenuasi, dan offset. Dengan
adanya offset dari echo dan sinyal asli maka echo akan tercampur dengan sinyal
aslinya, karena sistem pendengaran manusia yang tidak memisahkan antara echo dan
sinyal asli.
2.1.4 Audio Steganografi
Audio Steganografi merupakan teknik menyembunyikan pesan pada suara
digital. Pesan tersebut disisipkan dengan cara merubah urutan biner dari file audio
tersebut. (Bender, 1996). Audio Steganografi dapat diterapkan pada fileaudio WAV,
midi, AU, dan bahkan MP3.
Menyisipkan pesan ke dalam suara digital umumnya mempunyai proses yang
lebih sulit dibanding menyisipkan pesan kedalam media lainnya, seperti media
gambar. Metode sederhana yang dapat digunakan untuk audio steganografi yaitu
menyisipkan pesan dalam bentuk gangguan sinyal sampai kepada cara yang lebih
sulit seperti menggunakan teknik pengolahan sinyal yang rumit untuk meyisipkan
pesan. Audio Steganografi menggunakan kelemahan dari sistem pendengaran
manusia untuk menyembunyikan pesan ke dalam fileaudio.
2.1.5 LSB (Least Significant Bit)
Metode LSB (Least Significant Bit) ini merupakan metode yang
komputasinya tidak terlalu kompleks dan pesan yang disembunyikan cukup aman
serta dapat menyimpan pesan dengan ukuran relatif besar. Metode ini memodifikasi
nilai yang paling kurang signifikan dari jumlah bit dalam 1 bytefilecarrier. Bit yang
memiliki signifikansi paling tinggi adalah numerik yang memiliki nilai tertinggi
(misal, 27 = 128), artinya bila terjadi perubahan pada bit ini akan menghasilkan
perubahan yang sangat signifikan. Bit yang memiliki signifikansi paling rendah
adalah numerik yang memiliki nilai terendah (misal, 20 = 1), artinya bila terjadi
perubahan pada bit ini akan menghasilkan perubahan yang tidak terlalu signifikan.
pada
berkas carrier yang berukuran 8 byte. Least Significant Bit dari filecarrier ditandai
dengan garis bawah. Berkas carrier dalam biner dengan ukuran 8 byte :
1 00001101 11001001 10010110
00001111 11001011 10011111 00010000
byte :
Kedelapan bit ini nantinya akan dimasukan kedalam Least Significant Bit dari
tiap-tiap byte pada filecarrier seperti berikut ini :
Berkas carrier dalam biner dengan ukuran 8 byte :
1 00001101 11001001 10010110
00001111 11001011 10011111 00010000
byte :
Proses Least Significant Bit Modification :
0 00001101 11001000 10010110
00001110 11001011 10011111 00010001
Pada contoh diatas, hanya sebagian dari Least Significant Bit filecarrier yang berubah
adalah bahwa kemungkinan terjadinya perubahan bit adalah sekitar 50%, karena
peluangnya perubahannya adalah antara 0 atau 1 dan dengan mengubah Least
Significant Bit maka ukuran dari file pembawa tidak akan berubah sehingga akan sulit
untuk terdeteksi (Bender, 1996).
2.1.6 File Audio
Audio (suara) adalah fenomena fisik yang dihasilkan oleh getaran suatu benda
yang berupa sinyal analog dengan amplitudo yang berubah secara kontinyu terhadap
waktu yang disebut frekuensi. Selama bergetar, perbedaan tekanan terjadi di udara
sekitarnya. Pola osilasi yang terjadi dinamakan sebagai gelombang. Gelombang
mempunyai pola sama yang berulang pada interval tertentu, yang disebut sebagai
periode. Contoh suara periodik adalah instrumen musik, nyanyian burung sedangkan
contoh suara non periodik adalah batuk, percikan ombak dan lain-lain (Binanto,
2010).
Suatu format file audio adalah format file untuk menyimpan data audio digital
pada sistem komputer. Data ini dapat disimpan tanpa dikompresi, atau dikompresi
untuk mengurangi ukuran file. Ini bisa menjadi sebuah raw bitstream, tetapi biasanya
merupakan sebuah container format atau format data audio dengan lapisan
penyimpanan yang telah ditetapkan.
Penting untuk membedakan antara format file dan codec audio. Codec
melakukan encoding dan decoding data audio mentah sementara data itu sendiri
disimpan dalam file dengan format file audio tertentu. Meskipun sebagian besar
format file audio hanya mendukung satu jenis data audio (dibuat dengan coder audio),
multimedia container format (seperti Matroska atau AVI) dapat mendukung beberapa
jenis data audio dan video. Ada tiga kelompok utama format file audio (Rassol,2002):
1. Format audio yang tidak terkompresi, seperti WAV, AIFF, AU atau raw
header-less PCM.
2. Format audio dengan kompresi lossless, seperti FLAC, Monkey Audio (yang
berekstensi APE), WavPack (yang berekstensi WV), TTA, ATRAC Advance
Lossless, Apple Lossless yang berekstensi m4a), MPEG-4 SLS, MPEG-4 ALS,
MPEG -4 DST, Windows Media Audio Lossless (WMA Lossless), dan Shorten
(SHN);
3. Format audio dengan kompresi lossy, seperti MP3, Vorbis, Musepack, AAC,
ATRAC dan WindowsMedia Audio lossy (WMA lossy).
2.1.7 MP3 (Moving Picture Expert Group Audio Layer III)
MPEG (Moving Picture Expert Group) Audio Layer III atau yang lebih
dikenal dengan MP3, adalah salah satu dari pengkodean dalam file audio dan juga
merupakan format kompresi audio loseless
Istilah menghilangkan yang dimaksud adalah kompresi audio ke dalam format mp3
menghilangkan aspek-aspek yang tidak signifikan pada pendengaran manusia untuk
mengurangi besarnya fileaudio.
MP3 adalah pengembangan dari teknologi sebelumya sehingga dengan ukuran
yang lebih kecil dapat menghasilkan kualitas yang setara dengan kualitas CD.
Spesifikasi dari Layer-Layer sebagai berikut:
a. Layer 1: paling baik pada 384 kbit/s
b. Layer 2: paling baik pada 256...384 kbit/s, sangat baik pada 224...256 kbit/,
baik pada 192...224 kbit/s
c. Layer 3: paling baik pada 224...320 kbit/s, sangat baik pada 192...224 kbit/s,
baik pada 128...192 kbit/s
Mp3 tidak mempertahankan bentuk asli dari sinyal input. Melainkan yang
dilakukan adalah menghilangkan suara-suara yang keberadaannya kurang/tidak
signifikan bagi sistem pendengaran manusia. Proses yang dilakukan adalah
menggunakan model dari sistem pendengaran manusia dan menentukan bagian yang
terdengar bagi sistem pendengaran manusia. Setelah itu sinyal input yang memiliki
domain waktu dibagi menjadi blok-blok dan ditransformasi menjadi domain
frekuensi. Kemudian model dari sistem pendengaran manusia dibandingkan dengan