• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI. penyembunyian informasi pada suatu media sedemikian rupa sehingga

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI. penyembunyian informasi pada suatu media sedemikian rupa sehingga"

Copied!
55
0
0

Teks penuh

(1)

LANDASAN TEORI

2.1 Steganografi

Steganografi merupakan ilmu dan seni yang mempelajari cara penyembunyian informasi pada suatu media sedemikian rupa sehingga keberadaannya tidak terdeteksi oleh pihak lain yang tidak berhak atas informasi tersebut. Pengguna pertama (pengirim pesan) dapat mengirim media yang telah disisipi informasi rahasia tersebut melalui jalur komunikasi publik, hingga dapat diterima oleh pengguna kedua (penerima pesan). Penerima pesan dapat mengekstraksi informasi rahasia yang ada di dalamnya.

Penyembunyian data rahasia ke dalam media digital mengubah kualitas media tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data di antaranya adalah:

1. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia.

2. Recovery. Data yang disembunyikan harus dapat diungkapkan kembali (recovery). karena tujuan steganografi adalah data hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut.

(2)

Gambar 2.1 Diagram Sistem Steganografi

Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, audio, teks, dan video. Sedangkan data rahasia yang disembunyikan dapat berupa berkas apapun. Media yang telah disisipi data disebut stegomessage. Proses penyembunyian data ke dalam media disebut penyisipan (embedding), sedangkan proses sebaliknya disebut ekstraksi. Proses tersebut dapat dilihat pada gambar 2-2. Penambahan kunci yang bersifat opsional dimaksudkan untuk lebih meningkatkan keamanan.

(3)

2.1.1 Sejarah Steganografi

Steganografi sudah dikenal oleh bangsa Yunani. Herodatus, penguasa Yunani, mengirim pesan rahasia dengan menggunakan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk membawa pesan rahasia di balik rambutnya.

Bangsa Romawi mengenal steganografi dengan menggunakan tinta tak-tampak (invisible ink) untuk menuliskan pesan. Tinta tersebut dibuat dari campuran sari buah, susu, dan cuka. Jika tinta digunakan untuk menulis maka tulisannya tidak tampak. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas tersebut. Saat ini di negara-negara yang melakukan penyensoran informasi, steganografi sering digunakan untuk menyembunyikan pesan-pesan melalui gambar, video, atau audio.

2.1.2 Metode-Metode Steganografi

Metode-metode umum yang digunakan dalam penyembunyian data ke media adalah:

1. Metode Modifikasi LSB

Sistem Steganografi akan menyembunyikan sejumlah informasi dalam suatu berkas dan akan mengembalikan informasi tersebut kepada pengguna yang berhak. Terdapat dua langkah dalam sistem Steganografi yaitu proses penyembunyian dan recovery data dari berkas penampung. Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit

(4)

data rahasia. Metode yang paling sederhana adalah metode modifikasi LSB

(Least Significant Bit Modification) dari setiap sample pada audio (Cvejic & Seppanen). Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit atau LSB).

Contoh : 1 1 0 1 0 0 1 0

Bit pada digit pertama merupakan MSB, dan bit pada digit terakhir merupakan LSB. Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Karena perubahan satu-dua buah bit pada beberapa pixel tidak akan terdengar dengan jelas. Metode ini memanfaatkan keterbatasan dari sistem indera pendengaran manusia yaitu HAS (Human Auditory System). Batas pendengaran manusia berada pada frekuensi antara 20 Hz - 20000 Hz.

Namun metode ini memiliki keterbatasan jumlah bit pesan yang dapat disisipkan atau disubstitusikan pada setiap byte-nya.

Ukuran Data Yang Disembunyikan

Ukuran data yang akan disembunyikan bergantung pada ukuran data penampung. Misalkan saja pada file citra 8-bit yang berukuran 256x256 pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte. Setelah diubah menjadi citra 24-bit, ukuran data bitmap menjadi 65536 x 3 = 196608 byte. Karena setiap byte

hanya bisa menyembunyikan satu bit di LSB-nya, maka ukuran data yang akan disembunyikan di dalam citra maksimum 196608/8 = 24576 byte. Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data

(5)

rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya. Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan data tersebut rusak akibat manipulasi pada citra penampung.

Hal yang sama juga berlaku, jika file audio yang menjadi media penampungnya. Misalkan saja ada file audio sebesar 80000 byte, maka file yang dapat ditampung oleh file audio tersebut adalah 80000/8 = 10000 byte.

Gambar 2.3 Least Significant Bit

(6)

Flowchart LSB

Flowchart yang ditampilkan di bawah ini merupakan flowchart dari metode LSB standar untuk menyisipkan suatu data rahasia ke dalam data lain.

(7)

2. Masking and Filtering

Kedua metode ini menyembunyikan informasi dengan cara mirip dengan penanda kertas. Hal ini dapat dilakukan, contohnya dengan memodifikasi

luminance sebagian dari citra, tetapi apabila dilakukan dengan hati-hati distorsi baru dapat terlihat.

3. Spread Spectrum Image Steganography

Pada metode ini untuk menyandikan sebuah pesan, digunakan sebuah

pseudorandom noise generator yang lebar untuk membuat sebuah barisan yang tersebar. Kemudian, sebuah skema modulasi digunakan untuk memperluas sebuah barisan yang tersebar. Kemudian, sebuah skema modulasi digunakan untuk memperluas spektrum yang sempit dari sebuah pesan dengan barisan yang tersebar, dengan demikian menyusun sinyal yang dibawa yang masuk ke dalam interleave dan ruang penyebar. Inner leaver

juga dapat mempergunakan kunci untuk mendikte algoritma interleaving.

Sinyal ini sekarang digabungkan dengan cover dari citra untuk menghasilkan cintra stego, yang sudah dibagi-bagi dengan layak untuk memlihara dynamic range awal dari cover citra. Citra stego tersebut kemudian diteruskan kepada penerima pesan.

4. Transformations

Discrete Cosine Transformation (DCT) adalah salah satu metode transformasi untuk mentransformasi m*n blok pixel dari sebuah citra secara berurutan ke dalam masing-masing koefisien 64 DCT. Alat steganografi

(8)

dapat menggunakan LSB dari koefisien DCT yang terbagi-bagi untuk menyembunyikan informasi.

2.1.3 Steganografi Audio

Steganografi audio merupakan cara penyembunyian pesan ke dalam suara digital. Pesan rahasia tersebut disembunyikan dengan cara penyisipan biner-biner pada pesan tersebut ke dalam biner audio.

2.2 Suara

2.2.1 Pengertian Suara

Suara atau bunyi adalah getaran yang disalurkan melalui medium penghantarnya, baik padat, cair atau gas / udara. Suara yang dapat didengar oleh manusia lebih dikenal dengan sebutan audio.

Rentang frekuensi rata – rata yang dapat ditoleransi oleh telinga manusia adalah antara 20 Hz sampai dengan 20.000 Hz atau 20kHz, dan umumnya batas atas akan berkurang seiring bertambahnya umur manusia. Makhluk hidup selain manusia memiliki rentang toleransi frekuensi yang berbeda. Contoh, seekor anjing dapat menerima frekuensi bunyi di atas 20kHz. Sebagai salah satu cara untuk memberikan signal atau tanda, suara / bunyi telah digunakan oleh beberapa spesies untuk hal – hal dalam kehidupan antara lain: mendeteksi bahaya, navigasi, komunikasi, dan sebagainya. Hampir seluruh komponen di dalam bumi yang dapat bergetar akan menghasilkan bunyi. Untuk lebih jauhnya, manusia telah meningkatkan teknologi dan budaya, seperti musik, telepon, dan radio, untuk mendayagunakan suara.

(9)

Getaran mekanik yang dapat diintepretasikan sebagai suara mampu untuk menjalar dalam berbagai medium: gas, cairan, benda padat, dan plasma. Suara tidak dapat terdengar atau menjalar apabila tidak ada medium yang mendukungnya. Singkat kata, suara tidak dapat terdengar di ruang vakum.

Gambar 2.5 Gelombang Longitudinal dan Transversal

Gelombang Sinusoidal dengan berbagai frekuensi; gelombang paling bawah memiliki frekuensi yang lebih tinggi dibandingkan dengan gelombang pada bagian atasnya.

Gelombang longitudinal yang menjalar dalam medium gas, plasma, dan cairan disebut juga gelombang kompresi. Dengan medium benda padat, suara dapat menjalar dalam bentuk gelombang longitudinal dan transversal.

Gelombang suara longitudinal adalah gelombang dengan deviasi tekanan yang saling bergantian dari tekanan ekuilibrium – keadaan di mana suatu sistem seimbang dari berbagai pengaruh di luar sistem – dan menyebabkan kompresi dan rarefaction – keadaan di mana kepadatan suatu medium berkurang (berkebalikan dari kompresi) – local. Dengan adanya deviasi tekanan yang saling bergantian ini, maka bentuk dari gelombang longitudinal berupa rapatan dan regangan seperti pegas. Sementara gelombang transversal dalam medium padat adalah gelombang stress berlebih yang bergantian.

(10)

Zat dalam medium secara berkala posisinya akan diambil alih oleh gelombang suara, dan akan terombang-ambing. Energi yang dibawa oleh gelombang suara berubah – ubah dari energi potensial dengan kompresi tambahan (dalam bentuk gelombang longitudinal) atau menjadi perubahan tegangan posisi lateral (dalam bentuk gelombang transversal) dalam zat dan energi kinetik dari ketidakseimbangan mediumnya.

2.2.3 Karakteristik Gelombang

Karakteristik dari gelombang suara dapat diketahui dari beberapa hal, antara lain: frekuensi – banyaknya getaran yang dihasilkan sumber suara dalam satu detik, panjang gelombang, periode – waktu yang dibutuhkan untuk menghasilkan satu getaran, amplitudo – simpangan terbesar dari getaran yang dihasilkan oleh sumber suara, intensitas, kelajuan – cepat rambat gelombang suara, dan arah (terkadang kecepatan dan arah dikombinasikan sebagai kecepatan – kelajuan dengan arah menjadi besaran vektor).

Gelombang transversal, dikenal juga sebagai shear waves, memiliki polarisasi.

Nada atau tinggi rendahnya suara disebabkan oleh beberapa perubahan, antara lain jarak antara titik maximal gelombangnya, yang merupakan perubahan frekuensi. Sedangkan kekerasan suara dipengaruhi oleh amplitudonya. Semakin besar amplitudonya, semakin keras suaranya.

(11)

Audio digital berbeda dari suara analog tradisional. Audio digital merupakan sinyal diskrit dan bukan sinyal kontinu. Sinyal diskrit diciptakan dari

sampling sinyal analog yang kontinu dengan rate tertentu. Sebagai contoh,

sampling rate pada CD audio digital pada umumnya adalah 44kHz (Artinya dalam 1 detik ada sekitar 44000 sampel yang dimainkan).

Gambar 2.6 Proses Sampling

Bagaimanapun, sampling rate biasanya dipilih pada tingkatan di mana hasil sinyal digital secara visual tidak berbeda dari sinyal analognya. Audio digital disimpan pada komputer sebagai barisan 0 dan 1 dalam file audio digital. Dengan alat bantu yang tepat, maka tiap bit dalam file dapat diubah. Pengaturan yang tepat dapat menyebabkan perubahan bit pada file tidak dapat dibedakan oleh telinga manusia.

2.2.4.1 Format File Audio Digital

Format dari file audio merupakan bentuk data yang digunakan untuk menyimpan audio di dalam sistem komputer.

Pendekatan umum terhadap penyimpanan digital audio akan mencoba voltase dari audio pada saat audio tersebut diputar kembali, agar sesuai dengan

(12)

posisi tertentu di selaput speaker dari saluran khusus dengan resolusi tertentu. Di mana resolusi yang dimaksud adalah jumlah bit di setiap sample. Kemudian data dapat disimpan, baik dikompres, maupun tidak dikompres untuk mengurangi ukuran data dalam memori komputer.

Tipe-Tipe Format File

Penting untuk membedakan antara format file dengan codec. Codec

menunjukkan proses encoding dan decoding dari data audio yang belum diproses atau mentah, sedangkan data audio sendiri disimpan ke dalam sebuah file dengan sebuah data audio yang spesifik. Walaupun kebanyakan format file audio hanya memperbolehkan sebuah audio codec, namun format file memperbolehkan beberapa codec, seperti pada AVI.

Terdapat 3 golongan besar dalam mengelompokkan audio:

• Format audio yang tidak dikompres (uncompress) , seperti WAV, AIFF dan AU

• Format audio dengan kompresi nirrugi (lossless), seperti FLAC, Monkey's Audio (biasa disebut APE), WavPack (disingkat WV), Shorten, Tom's lossless Audio Kompressor (TAK), TTA, ATRAC

• Format audio dengan kompresi rugi (lossy), seperti MP3, Vorbis, Musepack, ATRAC, lossy Windows Media Audio (WMA) and AAC.

Sebelumnya perlu diketahui perbedaan antara format file dengan codec. 1. Format audio yang tidak dikompres

2. Format audio lossless

3. Format bebas dan terbuka 4. Format terbuka

(13)

5. Format layak FILE WAV

Format file audio tanpa proses kompresi yang paling sering ditemui adalah PCM (Pulse Code Modulation), yang biasanya tersimpan dalam file .wav di dalam Windows dan sebagai .aiff di dalam Mac OS. WAV adalah bentuk format file yang fleksibel untuk menyimpan semua kombinasi audio baik rates

maupun bitrates. Hal ini menyebabkan format file dalam bentuk .wav sangat layak untuk menyimpan dan mengarsipkan rekaman asli. Untuk format audio

lossless, akan dibutuhkan lebih banyak proses pada saat direkam, tetapi akan sangat efisien dalam hal penggunaan memori. WAV, seperti halnya seluruh format file yang tidak dikompres, akan meng-enkoding-kan semua suara, baik suara yang kompleks maupun tanpa suara, dengan jumlah bit yang sama setiap satuan waktunya. Contohnya: sebuah file menyimpan rekaman dari orkestra selama satu menit akan sama besar dengan file yang menyimpan satu menit keadaan diam tanpa suara apabila keduanya disimpan dalam bentuk format WAV. Apabila file di encoding dengan format filelossless, maka dengan contoh yang sama, file pertama akan menempati lebih sedikit memori sedangkan file

kedua sangat sedikit menggunakan memori. Namun bagaimanapun juga, untuk meng-encodingfile ke dalam format filelossless akan membutuhkan waktu yang jauh lebih lama dibandingkan dengan format file yang tidak dikompres sama sekali, yakni dalam format WAV. Dewasa ini, format audio lossless telah mengalami perkembangan, contoh: TAK, di mana dapat menyimpan file dengan cepat dengan kompresi yang juga baik.

(14)

Struktur File WAV

File WAV menggunakan struktur standar RIFF dengan mengelompokan isi file ke dalam bagian-bagian seperti format WAV dan data digital audio. Setiap bagian memiliki headernya sendiri-sendiri beserta dengan ukurannya.

RIFF

Struktur RIFF (Resource Interchange File Format) ini merupakan struktur yang biasa digunakan untuk data multimedia dalam Windows. Struktur ini mengatur data dalam file ke dalam bagian-bagian yang masing-masing memiliki header dan ukurannya sendiri dan disebut sebagai chunk. Struktur ini memungkinkan bagi program bila tidak mengenali bagian tertentu untuk melompati bagian tersebut dan terus memproses bagian yang dikenal. Data dari suatu bagian bisa memiliki sub-bagian dan seluruh data dalam file berstruktur RIFF selalu merupakan subbagian dari suatu bagian yang memiliki header “RIFF”. Contoh file yang menggunakan struktur RIFF adalah file WAV dan AVI.

File Wav

Sesuai dengan struktur file RIFF, file WAV diawali dengan 4 byte yang berisi ‘RIFF’ lalu diikuti oleh 4 byte yang menyatakan ukuran dari file tersebut dan 4 byte lagi yang berisi ‘WAVE’ yang menyatakan bahwa file tersebut adalah

file WAV. Berikutnya adalah informasi dari format sample yang menjadi sub-bagian dari sub-bagian RIFF lalu diikuti sub-sub-bagian data audionya.

(15)

Gambar 2.7 Struktur file WAV

Sumber http://www.sonicspot.com/guide/wavefiles.html

Bagian RIFF merupakan bagian utama dari semua file yang memakai format RIFF.

Tabel 2.1 Detail Bagian RIFF

Isi dari 4 byte pertama adalah ‘RIFF’, 4 byte berikutnya adalah ukuran dari bagian RIFF yang nilainya sama dengan ukuran dari file dikurangi 8 seperti yang ada pada tabel 2.1. ‘WAVE’ menempati 4 byte berikutnya adalah ukuran

(16)

dari bagian RIFF yang nilainya sama dengan ukuran dari file dikurangi 8 seperti yang ada pada tabel 2.1. ‘WAVE’ menempati 4 byte berikutnya dan digunakan sebagai penentu jenis dari file tersebut, dalam hal ini adalah file WAV. Setelah itu barulah informasi format dan data dari file WAV disimpan. Bagian format sample berisi informasi-informasi mengenai bagaimana data disimpan dan memainkannya. Bagian ini dimulai dengan ID ‘fmt ‘, lalu diikuti dengan 4 byte

yang merupakan panjang dari informasi dan bernilai 16 untuk PCM. Untuk lebih jelasnya ada di tabel 2.2.

Tabel 2.2 Detail Bagian Sample Format

2.3 Rijndael Advanced Encryption Standard

2.3.1 Algoritma

2.3.1.1 Pengertian Algoritma

Dalam ilmu Matematika dan ilmu Komputer, algoritma adalah kumpulan instruksi yang terdeskripsi dengan jelas isi dan urutan pengerjaannya, yang bertujuan untuk menyelesakan suatu tugas, dengan mendefenisikan kondisi awal dan akan berakhir pada kondisi akhir yang telah ditentukan pula. Konsep dari algoritma, secara informal dapat digambarkan sebagai sebuah resep.

(17)

2.3.1.2 Sejarah Algoritma

Konsep algoritma berawal dari penggabungan urutan-urutan prosedur untuk menyelesaikan masalah matematika, seperti mencari Greater Common Divisor (Faktor Persekutuan Terbesar) dari dua buah bilangan. Sebagian besar algoritma dapat diimplementasikan pada bahasa pemrograman atau setidaknya dapat disimulasikan secara teoritis oleh program komputer.

2.3.1.3 Pseudocode

Pseudocode adalah gambaran singkat dan informal dari sebuah algoritma pemrograman komputer yang menggunakan bentuk pemrograman struktural.

Pseudocode mengabaikan detil-detil seperti subrutin, deklarasi variabel dan sintaks yang spesifik dari suatu bahasa pemrograman. Pseudocode dapat ditulis dalam bahasa-bahasa pemrograman dengan sintaks yang disederhanakan, misalnya bahasa pemrograman PASCAL, C atau BASIC.

Tujuan penggunaan pseudocode adalah untuk menyederhanakan bahasa pemrograman menjadi bahasa manusia, sehingga memudahkan manusia untuk membaca alur dari suatu algoritma.

Berikut adalah contoh dari sebuah pseudocode untuk pengenalan angka genap atau angka ganjil:

1 MASUKKAN bilangan pertama 2 MASUKKAN bilangan kedua

3 JIKA bilangan pertama > bilangan kedua MAKA kerjakan langkah 4, JIKA tidak, kerjakan langkah 5.

(18)

4 TAMPILKAN bilangan pertama 5 TAMPILKAN bilangan kedua

2.3.2 Kriptografi

2.3.2.1 Pengertian Kriptografi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasian data, keabsahan data, integritas data, serta autentikasi data. Tidak semua aspek keamanan informasi detangani oleh kriptografi.

Kriptografi mencakup ilmu matematika dari berbagai cabang seperti Aljabar Linear, Aljabar Modern maupun Analisis Real. Kriptografi mengandung istilah-istilah penting yang mendasar sebagai berikut:

Plaintext (Cleartext) merupakan data yang dapat dimengerti.

Ciphertext, merupakan data yang tidak dapat dimengerti.

Encryption (Encoding), merupakan proses penyamaran data, dari plaintext

menjadi ciphertext.

Decryption (Decoding), merupakan proses untuk mengembalikan ciphertext

menjadi plaintext agar dapat dimengerti.

Key, merupakan angka atau metode yang digunakan dalam proses enkripsi dan dekripsi.

(19)

Ada empat tujuan mendasar dari ilmu kriptografi yang juga merupakan aspek kemanan informasi yaitu :

• Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah disandi.

• Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan penyubsitusian data lain ke dalam data yang sebenarnya.

• Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri.

• Non-repudiasi, atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan/membuat.

2.3.2.2 Sejarah Kriptografi

Sejarah kriptografi dimulai ribuan tahun yang lalu. Sampai beberapa dekade terakhir ini, sejarah kriptografi merupakan sebuah cerita yang disebut

Classic Cryptography, yang merupakan metode kriptografi yang masih menggunakan pensil dan kertas atau mungkin bantuan mekanik sederhana.

(20)

Pada zaman romawi kuno, Julius Caesar menggunakan kriptografi untuk mengirim pesan rahasia yang masih menggunakan algoritma kriptografi klasik yaitu algoritma penggeseran atau disebut juga Shift Cipher atau Caesar Cryptography.

Pada abad ke-20, ditemukan mesin elektronik untuk kriptografi yang lebih kompleks, seperti Enigma Rotor Machine, dilengkapi dengan metode enkripsi yang lebih cerdas dan berarti. Kemudian menjadi awal dari enkripsi-enkripsi baru yang memiliki kompleksitas yang lebih besar.

2.3.2.3 Algoritma Kriptografi

Algoritma kriptografi adalah metode yang digunakan dalam kriptografi untuk mengubah data berupa plaintext menjadi ciphertext sehingga dapat membuat data yang ingin dikirimkan menjadi rahasia dan hanya dapat diakses oleh user-user yang mengetahui key untuk mendekripsi ciphertext tersebut.

2.3.2.4 Pembagian Algoritma Kriptografi

Algoritma kriptografi sering juga disebut sebagai kriptosistem, dapat dibagi dalam tiga karakteristik:

• Berdasarkan jenis operasi yang digunakan

Berdasarkan jenis operasi yang digunakan untuk mengubah plaintext

menjadi ciphertext, algoritma kriptografi dibagi menjadi dua jenis umum antara lain substitution cipher dan transposition cipher. Semua algoritma kriptografi selalu berlandaskan pada dua prinsip umum tersebut, proses

(21)

substitusi dan proses transposisi. Tetapi ada juga algoritma kriptografi yang menggabungkan kedua konsep tersebut sekaligus.

Substitution cipher adalah algoritma kriptografi yang bertujuan untuk mengubah plaintext tertentu menjadi ciphertext tertentu. Inti dari substitution cipher adalah mengubah isi plaintext.

Transposition cipher adalah algoritma kriptografi yang bertujuan untuk menggeser posisi-posisi plaintext menjadi acak. Inti dari transposition cipher

adalah mengubah posisi plaintext.

• Berdasarkan jumlah key yang digunakan

Berdasarkan jumlah key yang digunakan, algoritma kriptografi dibagi menjadi kriptografi simetri dan kriptografi asimetri.

Kriptografi simetri adalah algoritma kriptografi yang hanya menggunakan satu jenis key, di mana untuk proses enkripsi dan dekripsi pada algoritma kriptografi tersebut akan menggunakan key yang sama. Oleh karena itu pada kriptografi simetri key tersebut bersifat rahasia yang hanya boleh diketahui oleh orang yang membuat pesan dan orang yang akan mendapatkan pesan.

Kriptografi asimetri adalah algoritma kriptografi yang menggunakan dua jenis key, yaitu public key dan private key. Public key pada kriptografi asimetri adalah key pribadi yang dibagikan kepada semua orang sehingga keberadaan public key tidak bersifat rahasia. Private key pada kriptografi asimetri adalah key pribadi yang hanya diketahui oleh pemilik key sendiri.

(22)

• Berdasarkan cara plaintext diproses

Berdasarkan cara plaintext diproses, algoritma kriptografi dibagi menjadi streamcipher dan blockcipher.

Stream cipher adalah algoritma kriptografi yang memproses plaintext

dari awal hingga akhir sekaligus tanpa mempedulikan panjang plaintext itu sendiri.

Block cipher adalah algoritma kriptografi yang hanya memproses

plaintext dengan panjang tertentu.

2.3.3 Kriptografi Simetri

2.3.3.1 Pengertian Kriptografi Simetri

Kriptografi simetri atau disebut juga single key encryption merupakan asal mula dari kriptografi asimetri. Kriptografi simetri menggunakan key yang sama dalam proses enkripsi dan dekripsi sehingga dapat digambarkan bahwa proses dekripsi adalah kebalikan dari proses enkripsi dengan menggunakan key yang sama.

(23)

Gambar 2.8 Kriptografi Simetri

Sumber Website http://www.antilles.k12.vi.us/math/cryptotut/1vs2key.htm 

Kriptografi simetri merupakan algoritma kriptografi yang lebih sederhana dibandingkan dengan kriptografi asimetri, sehingga ada banyak kriptografi simetriyang digunakan saat ini.

2.3.3.2 Advanced Encryption Standard (AES)

Advanced Encryption Standard (AES) atau dikenal juga dengan sebutan

Rijndael, adalah block cipher yang dianggap sebagai standard enkripsi oleh pemerintah Amerika Serikat.

AES tidak sepenuhnya merupakan Rijndael, karena AES hanya mendukung ukuran block 128 bit dan ukuran key 128, 192 dan 256 bit, sedangkan Rijndael

dapat menggunakan ukuran key dan block kelipatan 32 bit, di mulai dari 128 bit

hingga 256 bit.

Secara umum AES terdiri dari 4 langkah:

1. SubBytes, merupakan langkah substitusi non-linear di mana setiap byte

(24)

array akan diubah dengan menggunakan S-Box Rijndael. S-Box yang digunakan, diturunkan dari invers multiplikatif terhadap GF (28), yang diketahui mempunyai sifat non-linear.

Gambar 2.9 Langkah SubBytes Pada AES

2. ShiftRows, merupakan langkah transposisi bytet di mana masing-masing

baris byte dirotasi dengan jumlah pergeseran tertentu. Jumlah pergeseran baris adalah 0, 1, 2 dan 3 byte untuk masing-masing baris pertama, kedua ketiga dan keempat.

Gambar 2.10 Langkah ShiftRows Pada AES

3. MixColumns, merupakan operasi pencampuran empat byte pada

masing-masing kolom untuk menghasilkan empat byte output. Masing-masing kolom dibuat menjadi polinom GF (28) dan kemudian dikalikan dengan

(25)

Gambar 2.11 Langkah MixColumns Pada AES

4. AddRoundKey, mengoperasikan byte-byte input dengan round key.

Round key didapat melalui algoritma key schedule. Proses kombinasi dilakukan dengan menggunakan operasi

Gambar 2.12 Langkah AddRoundKey Pada AES

2.3.3.3 Substitution Permutation Network (SP-Network)

Pada kriptografi, SP-Network adalah sekumpulan operasi matematika yang digunakan dalam algoritma kriptografi block cipher seperti AES. SP-Network ini terdiri dari S-Box dan P-Box yang mengubah block input menjadi block output.

(26)

Operasi-operasi pada SP-Network merupakan operasi yang dapat dilakukan secara langsung oleh hardware, seperti operasi AND dan XOR.

S-Box mengubah bit-bit input menjadi bit-bit output. Pada S-Box yang ideal, perubahan satu bitinput dapat berakibat perubahan untuk setengah dari bit

-bitoutput, dan masing-masing bitoutput bergantung pada setiap bitinput.

Pada kriptografi, S-Box adalah komponen dasar dari kriptografi simetri. Pada block cipher, S-Box digunakan untuk membuat hubungan antara plaintext

dan ciphertext menjadi tidak jelas. S-Box biasanya dibuat dengan teliti sehingga dapat bertahan dari cryptanalysis.

Pada umumnya, S-Box menggunakan beberapa input m, kemudian mengubahnya menjadi beberapa bit output n (S-Box ). S-Box tersebut diimplementasikan sebagai suatu tabel. Tabel S-Box pada kriptografi biasanya telah ditentukan, misalnya S-Box Data Encryption Standard (DES), tetapi pada beberapa algoritma kriptografi, S-Box dibuat secara dinamis tergantung pada key, misalnya kriptografi Blowfish atau kriptografi Twofish.

Berikut adalah contoh S-Box dari DES (S5):

Tabel 2.3 Contoh S-Box Pada DES (S5)

Bitbit dalam 

S5  0000  0001  0010  0011 0100 0101 0110 0111 1000 1001 1010 1011  1100  1101 1110 1111 00  0010  1100  0100  0001 0111 1100 1011 0110 1000 0101 0011 1111  1101  0000 1110 1001 01  1110  1011  0010  1100 0100 0111 1101 0001 0101 0000 1111 1100  0011  1001 1000 0110 10  0100  0010  0001  1011 1100 1101 0111 1000 1111 1001 1100 0101  0110  0011 0000 1110 Bitbit  luar  11  1011  1000  1100  0111 0001 1110 0010 1101 0110 1111 0000 1001  1100  0100 0101 0011

Dengan diketahui 6 bit input 011011 maka akan didapat 4 bit output 1001.

(27)

menghasilkan 01 dan 1101. Output didapat dari hasil kombinasi tabel antara 01 dan 1101, yaitu 1001.

2.3.3.4 Key Schedule

Pada kriptografi, key schedule disebut juga dengan product cipher, merupakan bagian dalam kriptografi simetri yang bertujuan untuk menghasilkan

subkey-subkey dengan mengoperasikan key pada tahap-tahap kriptografi tertentu. Tujuan utama dari pembentukan subkey-subkey adalah untuk mempersulit kriptoanalis untuk mendapatkan key.

Gambar 2.13 Key Schedule Pada DES

Beberapa algoritma kriptografi mempunyai key schedule yang sederhana. Misalnya key schedule pada block cipher TEA, hanya memisahkan key 128 bit

menjadi empat buah subkey berukuran 32 bit dan menggunakan masing-masing subkey tersebut secara bergantian pada masing-masing tahap.

(28)

Salah satu key schedule yang banyak digunakan adalah key schedule pada

DES. Key berukuran 56 bit pada DES dipisah menjadi dua bagian berukuran 28

bit. Masing-masing bagian dioperasikan secara terpisah, yaitu dengan merotasikan satu atau dua bit, kemudian 48 subkey dipilih dengan menggunakan

Permutation Choice 2 (PC2). 48 subkey tersebut dihasilkan oleh masing-masing 24 bit dari 28 bit bagian kiri dan kanan.

Banyak algoritma modern menggunakan key schedule yang lebih rumit, seperti penggunaan one-way function untuk memperluas sebuah key menjadi

subkey. Algoritma kriptografi Rijndael dan Blowfish kadang-kadang mengawali

key schedule dengan random angka.

2.3.4 Kriptografi Asimetri

Kriptografi asimetri atau sering disebut sebagai public key encryption

menggunakan dua buah key yang berbeda yaitu public key dan private key.

Publickey merupakan key tanda dari user yang diketahui oleh semua orang yang kemudian akan digunakan untuk proses enkripsi, sedangkan private key bersifat rahasia dan merupakan key yang digunakan untuk proses dekripsi.

Pada buku “Golden Bough” karangan Sir James George Frazer, terdapat tulisan “Every Egyptians receive two names, which were known respectively as the true name and the good name, or the great name and the little name; and while the good name or the little name was made public, the true name or the great name appears to have been carefully concealed”. Tulisan tersebut adalah asal mula ilustrasi dari kriptografi asimetri.

(29)

Pada kriptografi asimetri, pengirim mengenkripsi plaintext dengan menyertakan public key penerima, dan apabila penerima sudah menerima

ciphertext, proses dekripsi dilakukan dengan menginput ciphertext yang disertai

private key penerima, yang hanya diketahui oleh penerima. Dengan demikian data tersebut aman.

Gambar 2.14 Kriptografi Asimetri

Sumber Website http://www.antilles.k12.vi.us/math/cryptotut/1vs2key.htm

RSA adalah sebuah algoritma kriptografi untuk kriptografi asimetri atau disebut juga public key encryption. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. RSA merupakan algoritma kriptografi pertama yang menggunakan konsep message-signing seiringan dengan proses enkripsi, yang merupakan salah satu dari kelebihan besar kriptografi asimetri. RSA banyak digunakan dalam protokol e-commerce, dan

(30)

dipercaya bahwa aman dengan key yang panjang dan menggunakan implementasi terbaru.

2.4 Rijndael Advanced Encryption Standard (Rijndael AES)

Input dan output dari algoritma AES terdiri dari urutan data sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu kelompok 128 bit tersebut disebut juga sebagai blok data atau plaintext yang nantinya akan dienkripsi menjadi

ciphertext. Cipher key dari AES terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit.

Pengantar Matematis

Seluruh byte dalam algoritma AES diinterpretasikan sebagai elemen finite field. Elemen finite field ini dapat dikalikan dan dijumlahkan, tetapi hasil dari penjumlahan dan perkalian elemen finite field sangat berbeda dengan hasil dari penjumlahan dan perkalian bilangan biasa.

1. Penjumlahan

Penjumlahan dari dua elemen dalam suatu finite field dilakukan dengan menjumlahkan koefisien dari pangkat polinom yang bersesuaian dari dua elemen tersebut. Penjumlahan dilakukan dengan operasi XOR dan dinotasikan dengan

. Dengan operasi ini, maka 11 = 0, 10 = 1, 01 = 1, dan 00 = 0. Pengurangan dari polinomial identik dengan penjumlahan polinomial.

Sebagai alternatif, penjumlahan elemen-elemen pada finite field dapat dijelaskan sebagai penjumlahan modulo 2 dari bit yang bersesuaian dalam byte. Untuk 2 byte {a7a6a5a4a3a2a1a0} dan {b7b6b5b4b3b2b1b0}, hasil penjumlahannya

(31)

adalah {c7c6c5c4c3c2c1c0} di mana setiap ci = ai⊕bi. Contoh dari operasi penjumlahan adalah sebagai berikut :

(x6+x4+x2+x+1)⊕(x7+x+1) = x7+x6+x4+x2 (notasi polinomial) {01010111}⊕{10000011} = {11010100} (notasi biner)

{57}⊕{83} = {d4} (notasi hexadesimal)

2. Perkalian

Dalam representasi polinomial, perkalian dalam GF(28) yang dinotasikan dengan mengacu pada perkalian modulo polinomial sebuah irreducible polynomial yang berderajat 8. Sebuah polinom bersifat irreducible jika satu-satunya pembagi adalah dirinya sendiri dan 1. Untuk algoritma AES, irreducible polynomial ini adalah :

m(x) = x8 + x4 + x3 + x + 1

atau dalam notasi hexadesimal adalah {01}{1b}. Sebagai contoh, {57}•{83} = {c1} , karena (x6 + x4 + x2 + x + 1) • (x7 + x + 1) = x13 + x11 + x9 + x8 + x7 + x7 + x5 + x3 + x2 + x + x6 + x4 + x2 + x + 1 = x13 + x11 + x9 + x8 + x6 + x5+ x4 + x3 + 1 dan x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 modulo (x8 + x4 + x3 + x + 1)

(32)

= x7 + x6 + 1 Pengurangan modular oleh m(x) memastikan bahwa hasilnya akan berupa polinomial biner dengan derajat kurang dari 8, sehingga dapat dipresentasikan dengan 1 byte saja.Urutan bit diberi nomor urut dari 0 sampai dengan n-1 di mana n adalah nomor urutan. Urutan data 8 bit secara berurutan disebut sebagai

byte di mana byte ini adalah unit dasar dari operasi yang akan dilakukan pada blok data.

Dalam algoritma AES, data sepanjang 128 bit akan dibagi-bagi menjadi

array byte di mana setiap array byte ini terdiri dari 8 bit data input yang saling berurutan. Array byte ini direpresentasikan dalam bentuk

Urutan bit input    0     1    2    3    4    5    6    7    8    9    10    11    12    13    14    15 

...

 

Nomor Byte    0    1 

...

 

Nomor Bit pada Byte    7    6    5    4    3    2    1    0    7      6      5    4      3    2      1    0 

...

    :a0a1a2...a15 Di mana:

a0 = { input0,input1,...,input7 }

a1 = { input8,input9,...,input15 }

a15 = { input120,input121,...,input127 }

an = { input8n,input8n+1,...,input8n+7 }

Operasi algoritma AES dilakukan pada sebuah state di mana state sendiri adalah sebuah array byte dua dimensi. Setiap state pasti mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah kolom tergantung dari besarnya blok data. Baris pada state mempunyai indeks nomor row (r) di mana 0 ≤ r < 4,

(33)

sedangkan kolom mempunyai indeks nomor column (c) di mana 0 ≤ c < Nb. Nb

sendiri adalah besarnya blok data dibagi 32.

Pada saat permulaan, input bit pertama kali akan disusun menjadi suatu array byte di mana panjang dari array byte yang digunakan pada AES adalah sepanjang 8 bit data. Array byte inilah yang nantinya akan dimasukkan atau dikopi ke dalam state dengan urutan :

s[r,c] = in[r+4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

Sedangkan dari state akan dikopi ke output dengan urutan :

out[r+4c] = s[r,c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

 

 

(34)

Penyandian Blok

Penyandian blok pada dasarnya adalah proses penyandian terhadap blok data yang jumlahnya sudah ditentukan. Untuk sistem penyandian blok terdapat empat jenis mode operasi, yaitu Electronic Code Book (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB).

ƒ Electronic Code Book (ECB)

Mode ECB adalah mode yang paling umum dan paling mudah untuk diimplementasikan. Cara yang digunakan adalah dengan membagi data ke dalam blok-blok data terlebih dahulu yang besarnya sudah ditentukan. Blok-blok data inilah yang disebut plaintext karena blok data ini belum disandikan. Proses enkripsi akan langsung mengolah plaintext menjadi ciphertext tanpa melakukan operasi tambahan. Suatu blok plaintext yang dienkripsi dengan menggunakan kunci yang sama akan menghasilkan ciphertext yang sama.

 

(35)

Keuntungan dari mode OBC ini adalah kemudahan dalam implementasi dan pengurangan resiko salahnya semua plaintext akibat kesalahan pada satu

plaintext. Namun mode ini memiliki kelemahan pada aspek keamanannya. Dengan mengetahui pasangan plaintext dan ciphertext, seorang kriptanalis dapat menyusun suatu code book tanpa perlu mengetahui kuncinya.

ƒ Cipher Block Chaining (CBC)

Pada CBC digunakan operasi umpan balik atau dikenal dengan operasi berantai (chaining). Pada CBC, hasil enkripsi dari blok sebelumnya adalah

feedback untuk enkripsi dan dekripsi pada blok berikutnya. Dengan kata lain, setiap blok ciphertext dipakai untuk memodifikasi proses enkripsi dan dekripsi pada blok berikutnya.

 

Gambar 2.17 Mode Operasi CBC

Pada CBC diperlukan data acak sebagai blok pertama. Blok data acak ini sering disebut initialization vector atau IV. IV digunakan hanya untuk membuat

(36)

suatu pesan menjadi unik dan IV tidak mempunyai arti yang penting sehingga IV tidak perlu dirahasiakan.

ƒ Cipher Feedback (CFB)

Pada mode CBC, proses enkripsi atau dekripsi tidak dapat dilakukan sebelum blok data yang diterima lengkap terlebih dahulu. Masalah ini diatasi pada mode Cipher Feedback (CFB). Pada mode CFB, data dapat dienkripsi pada unit-unit yang lebih kecil atau sama dengan ukuran satu blok. Misalkan pada

CFB 8 bit, maka data akan diproses tiap 8 bit.

Gambar 2.18 Mode Operasi CFB

Pada permulaan proses enkripsi, IV akan dimasukkan dalam suatu register

geser. IV ini akan dienkripsi dengan menggunakan kunci yang sudah ada. Dari hasil enkripsi tersebut, akan diambil 8 bit paling kiri atau Most Significant Bit

untuk di-XOR dengan 8 bit dari plaintext. Hasil operasi XOR inilah yang akan menjadi ciphertext di mana ciphertext ini tidak hanya dikirim untuk ditransmisikan tetapi juga dikirim sebagai feedback ke dalam register geser untuk dilakukan proses enkripsi untuk 8 bit berikutnya.

(37)

ƒ Output Feedback (OFB)

Sama pada mode CFB, mode OFB juga memerlukan sebuah register geser dalam pengoperasiannya. Pertama kali, IV akan masuk ke dalam register geser dan dilakukan enkripsi terhadap IV tersebut. Dari hasil proses enkripsi tersebut akan diambil 8 bit paling kiri untuk dilakukan XOR dengan plaintext yang nantinya akan menghasilkan ciphertext. Ciphertext tidak akan diumpan balik ke dalam register geser, tetapi yang akan diumpan balik adalah hasil dari enkripsi IV.

Gambar 2.19 Mode Operasi OFB

2.4.1 Algoritma Rijndael AES

Pada algoritma AES, jumlah blok input, blok output, dan state adalah 128

bit. Dengan besar data 128 bit, berarti Nb = 4 yang menunjukkan panjang data tiap baris adalah 4 byte. Dengan panjang kunci 128-bit, maka terdapat sebanyak 3,4 × 1038 = 2128 kemungkinan kunci. Jika komputer tercepat dapat mencoba 1 juta kunci setiap detik, maka akan dibutuhkan waktu 5,4 × 1024 tahun untuk mencoba seluruh kunci. Jika tercepat yang dapat mencoba 1 juta kunci setiap

(38)

milidetik, maka dibutuhkan waktu 5,4 × 1018 tahun untuk mencoba seluruh kunci.

Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada algoritma AES tidak harus mempunyai besar yang sama dengan blok input.

Cipher key pada algoritma AES bisa menggunakan kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Perbedaan panjang kunci akan mempengaruhi jumlah round

yang akan diimplementasikan pada algoritma AES ini. Di bawah ini adalah Tabel yang memperlihatkan jumlah round (Nr) yang harus diimplementasikan pada masing-masing panjang kunci. Tidak seperti DES yang berorientasi bit,

Rijndael beroperasi dalam orientasi byte. Setiap putaran mengunakan kunci internal yang berbeda (disebut round key). Enciphering melibatkan operasi substitusi dan permutasi.

2.4.1.1 Ekspansi Kunci

Algoritma AES mengambil kunci cipher, K, dan melakukan rutin ekspansi kunci (key expansion) untuk membentuk key schedule. Ekspansi kunci menghasilkan total Nb(Nr+1) word. Algoritma ini membutuhkan set awal key

yang terdiri dari Nb word, dan setiap round Nr membutuhkan data kunci sebanyak Nb word. Hasil key schedule terdiri dari array 4 byte word linear yang dinotasikan dengan [wi]. SubWord adalah fungsi yang mengambil 4 byte word input dan mengaplikasikan S-Box ke tiap-tiap data 4 byte untuk menghasilkan

word output. Fungsi RotWord mengambil word [a0, a1, a2, a3] sebagai input, melakukan permutasi siklik, dan mengembalikan word [a1, a2, a3, a0]. Rcon[i] terdiri dari nilai-nilai yang diberikan oleh [xi-1, {00}, {00}, {00}], dengan xi-1

(39)

sebagai pangkat dari x (x dinotasikan sebagai {02} dalam field GF(28). Word ke

Nk pertama pada ekspansi kunci berisi kunci cipher. Setiap word berikutnya, w[i], sama dengan XOR dari word sebelumnya, w[i-1] dan word Nk yang ada pada posisi sebelumnya, w[i-Nk]. Untuk word pada posisi yang merupakan kelipatan Nk, sebuah transformasi diaplikasikan pada w[i-1] sebelum XOR, lalu dilanjutkan oleh XOR dengan konstanta round, Rcon[i]. Transformasi ini terdiri dari pergeseran siklik dari byte data dalam suatu word RotWord, lalu diikuti aplikasi dari lookup Table untuk semua 4 byte data dari word SubWord.

2.4.1.2 Enkripsi

Proses enkripsi pada algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns, dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi

byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes,

ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya di mana pada round

(40)

 

Gambar 2.20 Diagram Algoritma Rijndael AES

1 SubBytes

SubBytes merupakan transformasi byte di mana setiap elemen pada state akan dipetakan dengan menggunakan sebuah tabel substitusi (S-Box). Hasil yang didapat dari pemetaan dengan menggunakan tabel S-Box ini sebenarnya adalah hasil dari dua proses transformasi bytes, yaitu :

1. Invers perkalian dalam GF(28) adalah fungsi yang memetakan 8 bit ke 8 bit

yang merupakan invers dari elemen finite field tersebut. Suatu byte a merupakan invers perkalian dari byte b bila a•b = 1, kecuali {00} dipetakan ke dirinya sendiri. Setiap elemen pada state akan dipetakan pada tabel invers. Sebagai contoh, elemen “01010011” atau {53} akan dipetakan ke {CA} atau “11001010”.

(41)

2. Transformasi affine pada state yang telah dipetakan. Transformasi affine ini apabila dipetakan dalam bentuk matriks adalah sebagai berikut :

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ × ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 7 6 5 4 3 2 1 0 ' 7 ' 6 ' 5 ' 4 ' 3 ' 2 ' 1 ' 0 b b b b b b b b b b b b b b b b

b7 b6 b5 b4 b3 b2 b1 b0 adalah urutan bit dalam elemen state atau array byte di mana b7 adalah most significant bit atau bit dengan posisi paling kiri.

(42)

Tabel 2.4 Substitusi (S-Box)

2 ShiftRows

Transformasi ShiftRows pada dasarnya adalah proses pergeseran bit di mana bit paling kiri akan dipindahkan menjadi bit paling kanan (rotasi bit). Transformasi ini diterapkan pada baris 2, baris 3, dan baris 4. Baris 2 akan mengalami pergeseran bit sebanyak satu kali, sedangkan baris 3 dan baris 4 masing-masing mengalami pergeseran bit sebanyak dua kali dan tiga kali.

(43)

3 MixColumns

MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom pada state. Elemen pada kolom dikalikan dengan suatu polinomial tetap a(x) = {03}x3 + {01}x2 + {01}x + {02}. Secara lebih jelas, transformasi MixColumns

dapat dilihat pada perkalian matriks berikut ini :

⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ c c c c c c c c s s s s s s s s , 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02

Melakukan proses penambahan pada operasi ini berarti melakukan operasi

bitwise XOR. Maka hasil dari perkalian matriks diatas dapat dianggap seperti perkalian yang ada di bawah ini :

) } 02 ({ ) } 03 ({ ) } 03 ({ ) } 02 ({ ) } 03 ({ ) } 02 ({ ) } 03 ({ ) } 02 ({ , 3 , 2 , 1 , 0 ' , 3 , 3 , 2 , 1 , 0 ' , 2 , 3 , 2 , 1 , 0 ' , 1 , 3 , 2 , 1 , ' , 0 c c c c c c c c c c c c c c c c c c c o c s s s s s s s s s s s s s s s s s s s s • ⊕ ⊕ ⊕ • = • ⊕ • ⊕ ⊕ = ⊕ • ⊕ • ⊕ = ⊕ ⊕ • ⊕ • = Gambar 2.23 MixColumns()

(44)

4 AddRoundKey

Pada proses AddRoundKey, sebuah round key ditambahkan pada state

dengan operasi bitwise XOR. Setiap round key terdiri dari Nbword di mana tiap

word tersebut akan dijumlahkan dengan word atau kolom yang bersesuaian dari

state sehingga :

[

s0',c,s1',c,s2',c,s3',c

]

=

[

s0,c,s1,c,s2,c,s3,c

]

[

wround*Nb+c

]

untuk0≤cNb

[wi] adalah word dari key yang bersesuaian di mana i = round*Nb+c.

Transformasi AddRoundKey diimplementasikan pertama kali pada round = 0, di mana key yang digunakan adalah initial key (key yang dimasukkan oleh kriptografer dan belum mengalami proses key expansion).

Gambar 2.24 AddRoundKey()

2.4.1.3 Dekripsi

Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah yang berlawanan untuk menghasilkan Inverse cipher yang mudah dipahami

(45)

untuk algoritma AES. Transformasi byte yang digunakan pada invers cipher

adalah InvShiftRows, InvSubBytes, InvMixColumns, dan AddRoundKey. Algoritma dekripsi dapat dilihat pada skema berikut ini :

 

Gambar 2.25 Diagram Alir Proses Dekripsi

1 InvShiftRows

InvShiftRows adalah transformasi byte yang berkebalikan dengan transformasi ShiftRows. Pada transformasi InvShiftRows, dilakukan pergeseran

bit ke kanan sedangkan pada ShiftRows dilakukan pergeseran bit ke kiri. Pada baris kedua, pergeseran bit dilakukan sebanyak 3 kali, sedangkan pada baris ketiga dan baris keempat, dilakukan pergeseran bit sebanyak dua kali dan satu kali.

(46)

Gambar 2.26 Transformasi InvShiftRows()

2 InvSubBytes

InvSubBytes juga merupakan transformasi bytes yang berkebalikan dengan transformasi SubBytes. Pada InvSubBytes, tiap elemen pada state dipetakan dengan menggunakan Tabel Inverse S-Box. Tabel ini berbeda dengan tabel S-Box

di mana hasil yang didapat dari Tabel ini adalah hasil dari dua proses yang berbeda urutannya (Tabel 2.5 : Inverse S-box), yaitu transformasi affine terlebih dahulu, baru kemudian perkalian invers dalam GF(28).

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ × ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 2 3 4 5 6 7 ' 0 ' 1 ' 2 ' 3 ' 4 ' 5 ' 6 ' 7 b b b b b b b b b b b b b b b b

Perkalian invers yang dilakukan pada transformasi InvSubBytes ini sama dengan erkalian invers yang dilakukan pada transformasi SubBytes.

(47)

Tabel 2.5 Inverse S-box

3 InvMixColumns

Pada InvMixColumns, kolom-kolom pada tiap state (word) akan dipandang sebagai polinom atas GF(28) dan mengalikan modulo x4 + 1 dengan polinom tetap a-1(x) yang diperoleh dari :

a-1(x)= {0B}x3 + {0D}x2 + {09}x + {0E}. Atau dalam matriks :

)

(

)

(

)

(

'

x

a

x

s

x

s

=

⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ c c c c c c c c s s s s E D B B E D D B E D B E s s s s , 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0 0 09 0 0 0 0 09 0 0 0 0 09 09 0 0 0

(48)

Hasil dari perkalian diatas adalah : ) } 0 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 09 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ , 3 , 2 , 1 , ' , 3 , 3 , 2 , 1 , ' , 2 , 3 , 2 , 1 , ' , 1 , 3 , 2 , 1 , ' , 0 c c c c o c c c c c o c c c c c o c c c c c o c s E s s D s B s s B s E s s D s s D s B s E s s s s D s B s E s • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • = 4 InvAddRoundKey

Transformasi InvAddRoundKey tidak mempunyai perbedaan dengan transformasi AddRoundKey karena pada transformasi ini hanya dilakukan operasi penambahan sederhana dengan menggunakan operasi bitwise XOR.

2.5 Software Development Life Cycle

Menurut Turban, et. al. (2001, p477-486), Software Development Life Cycle (SDLC) adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan yang diperlukan untuk membangun suatu sistem informasi. Pendekatan waterfall

digunakan untuk menggambarkan SDLC.

SDLC dirancang dengan tujuan untuk membangun alur pemrograman yang terstruktur dan untuk membantu manajemen proyek dalam perhitungan estimasi waktu dan sumber yang dibutuhkan suatu proyek.

(49)

Gambar 2.27 Eight Stage SDLC Sumber: Turban, et. al. (2001, p. 477)

Tahap-tahap SDLC adalah sebagai berikut: 1. System Investigation

System Investigation adalah tahap yang mengutamakan pembelajaran terhadap segala kemungkinan yang dapat terjadi. Dengan pembelajaran maka suatu sistem dapat terhindar dari kesalahan yang dapat mengakibatkan peningkatan usaha, waktu dan jumlah pengeluaran.

2. System Analysis

System Analysis adalah tahap yang menganalisis masalah yang perlu diselesaikan. Tahap ini mendefinisikan permasalahan, mengidentifikasikan penyebab, menspesifikasikan solusi, serta mengidentifikasikan informasi-informasi yang diperlukan.

(50)

System Design adalah tahap yang menjelaskan bagaimana suatu sistem akan bekerja. Hasil dari tahap ini adalah output, input dan user interface dari sistem serta hardware, software, database dan prosedur.

4. Programming

Programming adalah tahap yang menerjemahkan spesifikasi desain sistem menjadi bahasa pemrograman yang dapat dimengerti oleh komputer.

5. Testing

Testing adalah tahap yang digunakan untuk memeriksa apakah pemrograman telah menghasilkan hasil yang diinginkan dan diharapkan atas situasi tertentu. Testing dirancang untuk mendeteksi adanya kesalahan coding. 6. Implementation

Implementation adalah proses perubahan dari penggunaan sistem lama menjadi sistem yang baru.

7. Operation and Maintenance

Operation and Maintenance adalah tahap untuk memelihara sistem baru yang akan dioperasikan dalam suatu periode waktu.

2.6 Unified Modelling Language

Unified Modelling Language (UML) adalah bahasa grafis yang standar untuk memodelkan software object oriented (Lethbridge, 2002, p.151). UML mengandung tipe diagram yang bervariasi, termasuk:

1. Class Diagram

2. Sequence Diagram

(51)

Class diagram adalah salah satu diagram struktur statis yang menunjukkan struktur dari sistem dengan menunjukkan class-class yang ada pada sistem,

attribute dan method class-class tersebut dan hubungan antar class. Hubungan

class terdiri dari link, association, aggregation dan composition.

Gambar 2.28 Notasi Class Sumber: Lethbridge (2002, p.439)

Gambar 2.29 Hubungan Class Pada Class Diagram

Link adalah hubungan dasar antar objek yang menggambarkan garis penghubung antara dua atau lebih class. Link merupakan bagian dari association.

Association menggambarkan kumpulan link yang saling berhubungan.

Binary Association (dengan dua titik akhir) biasanya digambarkan sebagai sebuah garis, dimana masing-masing titik akhir dihubungkan dengan sebuah

(52)

Gambar 2.30 Hubungan Association Pada Class Diagram

Aggregation adalah lambang dari “memiliki sebuah” atau hubungan

association, tetapi aggregation lebih spesifik daripada association. Meskipun

aggregation merupakan perluasan association, hubungan aggregation hanya dapat melibatkan dua class.

Aggregation terjadi bila suatu class mengandung satu atau lebih objek dari

class lain, tetapi class yang dikandung tidak memiliki life cycle dependency

dengan class yang mengandung.

Gambar 2.31 Hubungan Aggregation Pada Class Diagram

Composition merupakan hubungan aggregation di mana class yang dikandung telah memiliki life cycle dependency dengan class yang mengandung.

(53)

2.6.2 Sequence Diagram

Menurut Lethbridge (2002, p270), sequence diagram adalah diagram yang menunjukkan urutan proses dan penukaran pesan oleh sejumlah objek (dan seorang aktor yang optional) dalam melakukan tugas tertentu. Sequence diagram

menggambarkan skenario runtime sederhana secara grafis.

Gambar 2.33 Notasi Object, Lifetime dan Activation Sumber: Lethbridge (2002, p.440)

(54)

2.7 State Transition Diagram 2.7.1 Pengertian STD

STD merupakan suatu modeling tool yang menggambarkan sifat ketergantungan sistem. Pada mulanya hanya digunakan untuk menggambarkan suatu sistem yang memiliki sifat real time seperti proses control, telephone switching system, dan control system.

2.7.2 Simbol dan Sifat STD

State adalah kumpulan keadaan dan atribut yang mencirikan objek pada waktu atau kondisi tertentu. Disimbolkan dengan segi empat.

Gambar 2.35 Notasi State

Transition adalah simbol perpindahan keaktifan dari sebuah objek menjadi objek lain. Transition disimbolkan dengan anak panah.

Gambar 2.36 Notasi Transition

Condition adalah suatu keadaan pada lingkungan eksternal yang dapat dideteksi oleh sitem. Condition menggambarkan syarat yang biasanya digunakan dalam hubungan seleksi. Action adalah yang dilakukan sistem bila terjadi

(55)

perubahan state atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau output. Display adalah hasil yang merupakan STD.

2.8 User Interface Design

User Interface (UI) Design adalah perancangan tampilan antarmuka yang bersifat visual dari suatu aplikasi agar aplikasi tersebut dapat berinteraksi dengan baik dengan user dan dapat digunakan dengan maksimal.

Proses perancangan UI harus mengandung arti dari unsur-unsur visual yang seimbang, yang dapat memodelkan inti dari operasi aplikasi yang akan dijalankan. Selain itu perancangan UI yang baik juga harus dapat membuat aplikasi hingga mudah digunakan dan dapat disesuaikan dengan kebutuhan masing-masing user.

Dalam perancangan UI, terdapat delapan aturan emas yang mendukung sebuah perancangan UI yang baik. Delapan aturan emas, yang dijabarkan oleh Ben Scneiderman, tersebut antara lain:

1. Usaha untuk konsistensi dalam tampilan.

2. Memungkinkan user yang rutin untuk menggunakan shortcut. 3. Memberikan umpan balik yang informatif.

4. Memunculkan dialog box pada penutupan. 5. Mempunyai error-handling sederhana.

6. Memungkinkan user untuk membatalkan tindakan. 7. Mendukung komponen dan control.

Gambar

Gambar 2.2 Proses Penyisipan Dan Ekstraksi Dalam Steganografi
Gambar 2.3 Least Significant Bit
Gambar 2.4: Diagram Metode LSB
Gambar 2.6 Proses Sampling
+7

Referensi

Dokumen terkait

Bank Syariah Mandiri (BSM) merupakan salah satu perbankan yang dalam sistem operasionalnya berdasarkan atas syariah. Sistem Syariah yang digunakan yaitu kecenderungan untuk

MENINGKATKAN HASIL BELAJAR OPERASI HITUNG CAMPURAN SISWA PADA MATA PELAJARAN MATEMATIKA DI SEKOLAH DASAR.. Universitas Pendidikan Indonesia | repository.upi.edu

Hanjaya Mandala Sampoerna Tbk telah efektif dalam memanfaatkan aktiva perusahaan untuk menghasilkan keuntungan menurut standar yang ditentukan karena nilai dari

By reading this You Are A Spiritual Being Having A Human Experience By Bob Frissell, you could more than exactly what you receive from various other book You Are A Spiritual

Besarnya kendalan sistem dapat dilihat dari nilai LOLP ( Loss of Load Probability ) dari sistem yang bersangkutan, nilai LOLP dinyatakan dalam besaran hari per

Yang dimaksud dengan kegiatan kunjungan rumah adalah semua kegiatan yang dilakukan untuk tindakan lanjut kegiatan jenis pelayanan : penyakit dalam, kesehatan anak (Termasuk.

Retribusi Daerah, yang selanjutnya disebut Retribusi, adalah pungutan Daerah sebagai pembayaran atas jasa yang khusus disediakan dan/atau diberikan oleh

Adapun perangkat yang digunakan pada tahapan pembuatan program adalah Java 2 Micro Edition (J2ME) bahasa pemrograman untuk aplikasi yang akan dijalankan pada handphone,