DENGAN METODE LEAST SIGNIFICANT BIT (LSB) TERHADAP PESAN TERENKRIPSI DENGAN ALGORITMA TWOFISH

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

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 tanggal 7 Februari 2013

Pembimbing I

Esti Suryani, S.Si., M.Kom NIP. 19761129 200812 2 001

Pembimbing II

Abdul Aziz, S.Kom., M.Cs NIP. 19810413 200501 1 001

(QS. Ali Imron : 146)

( Booker T.)

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 :-)

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

Audio Steganografi, Least Significant Bit (LSB), Twofish

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 Audio Steganography, Least Significant Bit (LSB), Twofish

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

Penulis

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

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 Kelipatan

69

Halaman

LAMPIRAN 1 ............................................................................................................ 74

PENDAHULUAN

1.1 Latar 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 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

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 terlebih dahulu melakukan proses enkripsi pada pesan rahasia tersebut dengan 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 terlebih dahulu melakukan proses enkripsi pada pesan rahasia tersebut dengan

1.2 Rumusan 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.3 Batasan 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 file audio berformat mp3

1.4 Tujuan 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.5 Manfaat 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.6 Sistematika 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 saran- saran sebagai bahan pertimbangan untuk pengembangan penelitian selanjutnya.

TINJAUAN PUSTAKA

2.1 Dasar 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.1 Terminologi 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).

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.2 Teknik 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 pengirim maupun penerima memiliki kunci yang sama.

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 (stream cipher) dan Cipher blok(block cipher).

1. Cipher aliran (stream cipher) 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 cipher stream 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) ci = (pi + ki) mod 2 (1)

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

disisi penerima, bit-bit ciphertext di XOR-kan dengan aliran kunci yang sama untuk menghasilkan bit-bit plaintext :

Aliran kunci : 1000110 Maka ciphertext didapatkan dengan meng-XOR-kan bit-bit plaintext dengan aliran kunci pada posisi yang berkoresponden, sehinga didapatkan : 0100011

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 = (p 1 ,p 2 p m )

yang dalam hal ini p i m , dan blok ciphertext (C) adalah

C = (c 1 ,c 2 c m ) yang dalam hal ini c i m .

Bila plaintext dibagi menjadi n buah blok, barisan blok-blok plaintext dinyatakan sebagai (P 1 , P 2 P n ). Untuk setiap blok plaintext P i , bit-bit penyusunnya dapat dinyatakan sebagai vektor

P i = (p i 1 ,p i 2 p im )

Enkripsi dan dekripsi dengan kunci K dinyatakan berturut-turut dengan persamaan:

E K (P) = C ,

D K (C) = P.

dimana, E : Enkripsi

C : Chipertext

D : Dekripsi

P : Plaintext

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 beberapa prinsip berikut (Rinaldi,2004) :

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

C i = f(C i 1 ,K i )

(3) dimana,

r (r adalah jumlah putaran). K i = sub-kunci (subkey) pada putaran ke-i

f = fungsi transformasi (didalamnya terdapat operasi substitusi, permutasi, dan/atau ekspansi, kompresi). Plaintext dinyatakan dengan C 0 dan

ciphertext dinyatakan dengan C r .

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:

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 .

Gambar 2.2 Contoh Skema Jaringan Fiestel (Schneier,1998)

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:

E KL (P) = C

untuk fungsi enkripsi,dan

D KL (C) = E KL (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

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 key setup 12700 siklus clock.

b. Melakukan enkripsi data pada 860 siklus per block di atas Pentium Pro setelah menjalankan key setup 1250 siklus clock.

c. Melakukan enkripsi data pada 26500 siklus per block di atas sebuah 6805 smart card setelah mejalankan key setup 1750 siklus clock.

2.1.2.1 Unsur Pembangun Algoritma Twofish

Unsur pembangun Twofish terdiri dari Feistel Network (Jaringan Feistel), S-boxes , Matrix Maximum Distances Separable (MDS), Pseudo-Hadamard Unsur pembangun Twofish terdiri dari Feistel Network (Jaringan Feistel), S-boxes , Matrix Maximum Distances Separable (MDS), Pseudo-Hadamard

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 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

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 output nya 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.

Gambar 2.3 Proses Whitening (Scheiner,1998)

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.2 Struktur 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.

summation P = Input plaintext 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 :

P = Input plaintext 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 :

(F r,0, F r,1 )

F(F r,0, F r,1 ,r)

(8)

R r+1,0 =

ROR(R r,2 F r,0 ,1)

(9)

R r+1,1 =

ROL(R r,3 ,1) F r,1 (10)

R r+1,2 =

R r,0 (11)

R r+1,3 =

R r,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 c 0 15 . Gambar 2.5 menunjukkan gambar dari blok diagram Twofish.

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 R 0 dan R 1 , dan angka bulat r digunakan untuk memilih subkey yang sesuai. R 0 yang dilewati fungsi g, menghasilkan T 0 . i diputar 8 bit ke kanan kemudian melewati fungsi g untuk menghasilkan T 1 . Hasil T 0 dan T 1 selanjutnya dikombinasikan dalam sebuah PHT dan ditambahkan 2 word dari kunci yang diperluas menghasilkan persamaan : Fungsi F adalah suatu permutasi key-dependent di atas nilai 64-bit. Untuk mengambil tiga argumentasi, dua masukan R 0 dan R 1 , dan angka bulat r digunakan untuk memilih subkey yang sesuai. R 0 yang dilewati fungsi g, menghasilkan T 0 . i diputar 8 bit ke kanan kemudian melewati fungsi g untuk menghasilkan T 1 . Hasil T 0 dan T 1 selanjutnya dikombinasikan dalam sebuah PHT dan ditambahkan 2 word dari kunci yang diperluas menghasilkan persamaan :

(T 0 +T 1 +K 2r+8 ) mod 2 32 (15)

(T 0 + 2T 1 +K 2r+9 ) mod 2 32 (16) Dimana ( F 0 , F 1 ) adalah hasil dari F. Kita juga menggambarkan fungsi F menganalisa.

adalah identik dengan fungsi F, kalau tidak tambahkan beberapa 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-box key-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 (2 8 ), dan dikalikan dengan yang matriks MDS 4x4 (menggunakan bidang GF (2 8 )

untuk perhitungannya). Untuk menghasilkan vektor diinterpretasikan sebagai 32-bit sebagai hasil dari fungsi g :

Di mana s i adalah S-Box key-dependent dan Z adalah hasil dari g. Untuk merumuskan dengan baik, kita harus menetapkan koresponden antara nilai-nilai byte dan elemen-

elemen bidang GF (28). Kita merepresentasikan GF (2 8 ) sebagai GF(2 8 )[x]/v(x) di mana v(x)=x 8 +x 6 +x 5 +x 3 +1 adalah suatu polynomial primitif dari 8 tingkat di atas

GF(2). Unsur Bidang a= 7 i 0 a i x i dengan a i GF (2 8 ) adalah dikenal dengan nilai GF(2). Unsur Bidang a= 7 i 0 a i x i dengan a i GF (2 8 ) adalah dikenal dengan nilai

penambahan di dalam GF (2 8 ) berkorespondensi dengan suatu XOR dalam byte. Matriks MDS-nya

adalah sebagai berikut :

Di mana elemen-elemen ditulis sebagai nilai-nilai byte heksadesimal.

3. Penjadwalan Kunci

Penjadwalan kunci harus menyediakan 40 buah kunci yang diperluas K 0 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 m 0 8k-1 . Byte-byte yang pertama diubah ke dalam 2k word 32 bit masing-masing adalah:

-1

(18) dan ke dalam dua vektor word dari panjang k :

M e = (M 0 ,M 2 2k-2 )

(19)

M o = (M 1 ,M 3 2k-2 )

(20)

Sepertiga vektor word dari panjang k adalah juga diperoleh dari kunci itu.

Hal ini dilakukan dengan

mengambil

byte -byte kunci dan menginterpretasikannya sebagai vektor di atas GF (2 8 ), dan mengalikannya dengan

matriks 4x8 yang diperoleh dari suatu kode R. Masing-masing hasil dari 4 byte kemudian diinterpretasikan sebagai suatu word 32 bit. Word ini menyusun vektor yang ketiga :

-1, dan S = (S k -1,S k-2

Catat bahwa daftar S word itu di ntuk perkalian matriks RS, GF (2 8 ) diwakili oleh GF (2 8 )[x]/w(x), di mana w(x)= x 8 +x 6 +x 3 +x 2 +1 adalah polynomial primitif derajat dari 8 tingkat di atas GF(2 8 ). Pemetaan antara nilai-nilai byte dan elemen-elemen GF (2 8 ) menggunakan defnisi yang sama

sebagaimana yang digunakan untuk perkalian matriks MDS. Dalam pemetaan ini, matriks RS ditunjukkan sebagai berikut :

Ke tiga vektor M e ,M o , dan S ini membentuk basis dari jadwal kunci.

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 m 0 9 akan diperluas dengan mengatur m i pada kunci 128-bit.

Fungsi h adalah suatu fungsi yang mengambil dua input 32 bit word X dan sebuah daftar L = ( L 0 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.

XOR diterapkan :

y k,j =

x j (24) Fungsi h ditunjukkan pada Gambar 2.5 sebagai berikut :

Gambar 2.5 Fungsi h Gambar 2.5 Fungsi h

Dalam seluruh kasus didapatkan :

q 1 [q 0 [q 0 [y 2,0 ]

l 1,0 ] l 0,0 ] (25)

q 0 [q 0 [q 1 [y 2,1 ]

l 1,1 ] l 0,1 ] (26)

q 0 [q 1 [q 0 [y 2,2 ]

l 1,2 ] l 0,2 ] (27)

q 1 [q 1 [q 1 [y 2,3 ]

l 1,3 ] l 0,3 ] (28) Di sini, q 0 dan q 1 ditetapkan permutasi di atas nilai 8-bit yang akan didefinisikan

segera. Menghasilkan vektor yang merupakan perkalian matriks MDS, seperti halnya dalam fungsi g :

MDS .

. 2 (29) di mana Z adalah hasil dari fungsi h.

3.3 S-Box Key-dependent

Sekarang dapat didefinisikan S-Box dalam fungsi g oleh :

S-Box Key-Dependent s i dibentuk oleh pemetaan dari

x i ke y i di dalam fungsi h, di mana daftar L = vektor S yang diperoleh dari kunci itu.

3.4 Kunci yang Diperluas K j

Kunci yang diperluas didefinisikan menggunakan fungsi h :

ROL(h((2 i o ),8) (33)

K 2i

(A i +B i ) mod 2 32 (34) K 2i+1 = ROL((A i + 2B i ) mod 2 32 ,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 A i nilai-nilai byte itu adalah 2i, dan

argumentasi yang kedua dari h adalah M e . B i dihitung dengan cara yang sama

menggunakan 2i+1 sebagai byte nilai dan M o sebagai argumentasi yang kedua, dengan suatu putaran ekstra di atas 8 bit. Nilai-nilai A i dan B i 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 q 0 dan q 1

Permutasi q 0 dan q 1 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 :

a 0 ,b 0 =

/ x / , x mod 16

a 0 ROR 1 (b 0 ,1)

8a 0 mod 16

a 2 ,b 2 =

t 0 [a 1 ],t 1 [b 1 ]

16b 4 +a 4 (36) di mana ROR 4 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

q 0 S-Box 4-bit :

di mana masing-masing S-Box 4-bit diwakili oleh daftar masukan yang menggunakan notasi hexadecimal

yang sama, untuk q 1 S-Box 4-bit :

Gambar 2.6 menunjukkan satu putaran dalam fungsi F.

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 2004). Kata steganorafi berasal covered writing ). Steganografi membutuhkan dua properti: wadah

2.1.3.1 Karakteristik 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.

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).

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.3 Metode 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.