BAB 2 LANDASAN TEORI
2.1 Waterfall Model Nama sebenarnya dari Waterfall Model adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle”. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. (Roger S. Pressman, 2010)
Gambar 2.1 Waterfall Model
Roger S. Pressman (2010) memecah model waterfall menjadi 5 tahapan berikut: 1. Communication. Permodelan diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan. Pada tahap ini developer bertemu dengan pelanggan untuk mencari tahu kebutuhan dari keseluruhan sistem. Tahap ini sering disebut dengan Project Definition. 2. Planning. Proses pencarian kebutuhan yang diintensifkan dan difokuskan pada software. Aktivitas ini harus didokumentasikan dalam bentuk user requirement dan ditunjukkan kepada pelanggan agar mereka mengetahui
7
8
rencana yang akan dijalankan dan apakah rancangan sesuai dengan kebutuhan pelanggan. 3. Modeling. Dalam proses ini syarat kebutuhan diubah menjadi representasi ke dalam bentuk perancangan software sebelum proses coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Proses ini harus didokumentasikan dalam bentuk software requirement sebagai konfigurasi dari software. 4. Construction. Desain diubah menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis dikerjakan oleh programmer. Kemudian setelah tahap coding selesai, semua fungsi-fungsi software diujicobakan agar software bebas dari error dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. 5. Deployment. Tahapan terakhir dalam pengembangan sistem atau software. Sistem yang telah dibuat akhirnya dapat digunakan oleh pelanggan. Pada tahap ini juga dilakukan pemeliharaan sistem secara berkala.
2.2 Unified Modeling Language (UML) Menurut Martin Fowler (2004), Unified Modeling Language (UML) adalah serangkaian notasi gambar, yang didasarkan pada suatu model dasar, yang membantu mendeskripsikan dan merancang sistem atau software yang dibangun berdasarkan model pemrograman berbasis objek (Object-Oriented Programming). UML dikembangkan oleh Object Management Group (OMG). OMG dibentuk untuk membangun standar yang mendukung interoperabilitas dari sistem berbasis objek. UML yang diumumkan pada tahun 1997 terlahir dari gabungan
9
beberapa jenis grafis bahasa permodelan berbasis objek yang ada dari tahun 1980-an sampai awal 1990-an. Beberapa diagram yang temasuk dalam UML diantaranya adalah Use-Case Diagram, Activity Diagram, Sequence Diagram, dan Class Diagram.
2.2.1 Use Case Diagram “Use Case” adalah teknik penggambaran kebutuhan dari suatu sistem dengan cara menjabarkan kebutuhan tersebut dalam skenario-skenario. Use Case Diagram adalah diagram yang menunjukkan skenario-skenario tersebut dan bagaimana mereka berinteraksi satu sama lain maupun dengan sistem. Use Case Diagram menggambarkan bagaimana pengguna-pengguna berinteraksi dengan sistem dan apa saja yang dapat mereka lakukan di dalam sistem tersebut.
Gambar 2.2 Contoh Use Case Diagram
10
2.2.2 Activity Diagram Activity Diagram adalah teknik untuk menjelaskan logika prosedural, proses pekerjaan, dan alur kerja. Dalam berbagai penggunaan, activity diagram mempunyai fungsi yang mirip dengan flowchart, namun yang menjadi dasar perbedaannya adalah kemampuan activity diagram untuk menggambarkan kegiatan yang paralel.
Gambar 2.3 Contoh Activity Diagram
2.2.3 Sequence Diagram Sequence Diagram adalah salah satu contoh dari Interaction Diagram dalam UML yang merupakan diagram yang menjelaskan tentang bagaimana objek berkolaborasi dalam suatu kegiatan. Pada umumnya Sequence Diagram mewakili
11
satu kegiatan dari suatu skenario. Diagram ini menunjukkan sejumlah contoh objek dan pesan yang dipindahkan antara objek yang ada dalam satu skenario use case.
Gambar 2.4 Contoh Sequence Diagram
2.2.4 Class Diagram Sebuah Class Diagram menjelaskan tipe-tipe dari suatu objek di dalam sistem dan berbagai macam hubungan statis yang ada di antara objek-objek tersebut. Class Diagram juga memperlihatkan ciri-ciri dan operasi dari suatu kelas dan batasan-batasan yang membangun bagaimana objek-objek tersebut berhubungan.
12
Gambar 2.5 Contoh Class Diagram
2.3 Steganografi Menurut J.R. Krenn (2004), Steganografi berasal dari bahasa Yunani yaitu “stego” yang berarti tertutup dan “graphia” yang berarti menulis. Steganografi adalah seni dan ilmu dari menyembunyikan fakta bahwa sebuah komunikasi sedang berjalan. Dengan menggunakan steganografi, sebuah pesan rahasia dapat disembunyikan di dalam sebuah informasi yang tidak mencurigakan dan mengirimkannya tanpa ada seorang pun yang mengetahui keberadaan pesan rahasia tersebut.
Namun
sekarang,
istilah
steganografi
penyembunyian data digital dalam file komputer.
lebih
diartikan
sebagai
13
Format file yang biasa digunakan sebagai media penyimpan pesan antara lain adalah: 1. Format gambar: Bitmap, JPEG, GIF, dll. 2. Format audio: WAV, MP3, dll. 3. Format lain: File teks, HTML, PDF, dll.
Gambar 2.6 Gambaran Umum Steganografi
2.3.1 Perbedaan Steganografi dan Kriptografi Steganografi dan kriptografi sangat erat kaitannya namun keduanya merupakan hal yang berbeda. Kriptografi mengacaukan pesan sehingga pesan tersebut tidak dapat dimengerti, sedangkan steganografi menyembunyikan pesan sedemikian rupa sehingga tidak ada pihak yang mengetahui keberadaan pesan tersebut. Dalam beberapa situasi, mengirimkan sebuah pesan yang telah dienkripsi akan menimbulkan kecurigaan sedangkan sebuah pesan rahasia yang tidak tampak tentunya tidak akan dicurigai. Kedua teknik ini dapat digabungkan untuk menghasilkan perlindungan yang lebih baik terhadap sebuah pesan, yaitu ketika steganografi gagal dan pesan dapat terlihat, pesan tersebut masih tidak dapat diartikan karena telah dienkripsi menggunakan teknik kriptografi.
14
2.3.2 Kriteria Steganografi Kriteria yang harus diperhatikan dalam melakukan penyembunyian data dengan menggunakan teknik steganografi adalah sebagai berikut: •
Fidelity, kualitas dari media penampung data tidak boleh jauh berubah dari kualitas aslinya.
•
Robustness, data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan terhadap media penampung data.
•
Recovery, data yang telah disembunyikan di dalam media penampung data tersebut harus dapat diambil kembali.
2.3.3 Istilah-istilah dalam Steganografi •
Stego-medium, media yang digunakan untuk membawa pesan rahasia.
•
Redundant bits, sebagian informasi yang terdapat di dalam file yang jika dihilangkan tak akan menimbulkan kerusakan yang signifikan.
•
Payload, informasi yang akan disembunyikan.
•
Carrier file, file yang berisi pesan rahasia tersebut.
•
Steganalysis, proses untuk mendeteksi keberadaan pesan rahasia dalam suatu file.
2.4 Metode Least Significant Bit (LSB) Teknik yang paling sering digunakan untuk menyembunyikan data adalah menggunakan LSB. Meskipun terdapat beberapa kekurangan dari teknik ini, namun teknik ini mudah untuk diimplementasikan sehingga membuatnya menjadi teknik yang paling terkenal. Karena metode ini menggunakan bit-bit dari setiap pixel yang ada di dalam gambar, penting untuk menggunakan file gambar yang tidak
15
menggunakan algoritma kompresi sebagai media penyimpanan informasi. (J.R. Krenn, 2004) Ketika menggunakan gambar 24-bit, setiap bit dari komponen merah, hijau, dan biru dapat digunakan, sehingga total dari ketiga bit tersebut dapat disimpan di setiap pixel gambar. Sebuah gambar dengan ukuran 800 x 600 pixel dapat menyimpan pesan rahasia kira-kira sebesar 1440000 bit (180000 byte). Contoh berikut adalah 3 pixel dari gambar 24 bit menggunakan memori 9 byte: (00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001) Ketika karakter A yang memiliki nilai biner 10000001 dimasukkan, maka hasilnya akan menjadi: (00100111 11101000 11001000) (00100110 11001000 11101000) (11001000 00100111 11101001) Pada kasus ini, hanya tiga bit yang perlu diganti untuk memasukkan karakter tersebut dengan sukses. Biasanya, hanya setengah dari jumlah bit dalam gambar yang perlu dimodifikasi untuk menyembunyikan pesan menggunakan ukuran maksimal dari gambar. Hasil modifikasi yang dibuat pada bit LSB sangat kecil untuk disadari oleh mata manusia, sehingga pesan tersebut akan tetap tersembunyi. Kekurangan dari menggunakan metode LSB ini adalah dibutuhkan sebuah media penyimpanan yang sangat besar untuk menyediakan tempat untuk pesan yang besar yang akan disimpan. Kekurangan lainnya adalah ketika melakukan kompresi
16
pada gambar yang telah dimasukkan pesan rahasia dengan menggunakan algoritma lossy compression, pesan rahasia tersebut akan hilang setelah kompresi dilakukan.
2.5 Metode Before All Frames (BAF) Metode Before All Frames adalah metode steganografi pada audio dimana partisi atau pecahan pesan disisipkan pada setiap sebelum frame MP3. Metode ini diadopsi dari metode Between Frames yang menyisipkan diantara setiap frame MP3. (Mohammed Salem Atoum, 2011) Berikut adalah algoritma penyisipan (embedding) dari metode BAF: 1. Read MP3 file into buffer 2. Pos=0 3. While (Pos < Buffer) { Search for next header (header position) Remove all data before the header Calculate FS Read FS byte and store into array frame Add frame array to all frame array Pos = Pos + Header Pos + FS } 4. Read remaining and store 5. Convert string text data to binary by using UTF8 encoding 6. Generate RSA keys { Store keys length in temp array Store keys in temp array } 7. Encrypt (data string and keys length and keys) and store in temp 8. Find all location in temp=255 { Store locations count in temp before all data in hexadecimal Store all location in hexadecimal } 9. I=0 , Offset=2 Number of bytes (NOB) = Ceiling(temp count / (frame count - 2)) Num Saved =0 While I < All frames count { If I> Offset then { If (I*NOB + NOB <= temp count + Offset) then Store NOB in result Num saved + = NOB } Else If num saved < n then store from (I-offset) NOB to end of temp } Store frame I in result Store remaining
17
REPLACE DATA IN TEMP ARRAY WITH THE ENCRYPTED DATA
START
READ MP3 FILE INTO BUFFER FIND ALL LOCATION IN TEMP=255 SET POS=0 STORE LOCATIONS COUNT IN TEMP BEFORE ALL DATA IN HEXADECIMAL
IF POS=BUFFER
I=0, OFFSET=2, NOB=CEILING(TEMPCOUNT / (FRAMECOUNT-2)), NUMSAVED=0
NO
IF I < FRAMECOUNT
NO READ REMAINING BYTES AND STORE INTO ARRAY FRAME
CONVERT STRING TEXT DATA TO BINARY BY USING UTF-8 ENCODING
YES
NO
IF I > OFFSET
REMOVE ALL DATA BEFORE THE HEADER
GENERATE RSA KEY
STORE KEYS LENGTH IN TEMP ARRAY
STORE KEYS IN TEMP ARRAY
STORE A FRAME INTO RESULTING FILE = I+1
SEARCH FOR NEXT HEADER
CALCULATE FRAME SIZE (FS)
YES STORE NOB INTO RESULTING FILE
YES
ENCRYPT AND STORE IN TEMP
READ FS BYTE AND STORE INTO ARRAY FRAME
ADD FRAME ARRAY TO ALL FRAME ARRAY
SET POS = POS+HEADERPOS+FS
STORE REMAINING
FINISH
Gambar 2.7 Flowchart Embedding Metode BAF
18
Dan berikut adalah algoritma mengeluarkan pesan (extracting) dari metode BAF: 1. Read MP3 file into buffer 2. Pos=0 3. While (Pos<Buffer) { Search for next header (header position) Save all data before the header Calculate FS Read FS byte and store into array frame Add frame array to all frame array Pos = Pos + Header Pos + FS } 4. Read hexadecimal from no of location. 5. Hexadecimal from all location. 6. Convert hexadecimal into 255. 7. Read (key length and keys.) 8. Decrypt data. 9. Convert data to string using UTF8 encoding. 10. Show text.
START
SET LOCATIONS TO 255 IN TEMP READ MP3 FILE INTO BUFFER
READ KEYS LENGTH FROM TEMP ARRAY SET POS=0
READ KEYS FROM TEMP ARRAY SEARCH FOR FIRST HEADER
DECRYPT DATA SAVE ALL DATA BEFORE THE HEADER INTO TEMP ARRAY CONVERT BINARY DATA TO STRING TEXT BY USING UTF-8 ENCODING REPEAT THAT FOR ALL FRAMES
READ LOCATIONS COUNT AND LOCATIONS FROM TEMP IN HEXADECIMAL
FINISH
Gambar 2.8 Flowchart Extracting Metode BAF
19
2.6 McEliece Cryptosystem Teknik kriptografi (cryptosystem) ini diperkenalkan oleh McEliece pada tahun 1978, yang mirip dengan Merkle-Hellman Knapsack cryptosystem yang mengambil kasus sederhana dari masalah polinomial non-deterministik (NPproblem) dan menyamarkannya sehingga terlihat lebih rumit. Cryptosystem ini masalah diambil dari teori error-correction coding. (Bill Cherowitzo, 2002) Ide dasar dari McEliece cryptosystem adalah menyamarkan sebuah linear code yang mudah dipecahkan menjadi linear code yang memerlukan decoding yang sulit untuk dipecahkan. McEliece menyarankan penggunaan geometri aljabar (AGcode, atau Goppa code) yang merupakan linear code yang dapat dipecahkan secara cepat, namun linear code lainnya juga dapat digunakan. Logika dari McEliece cryptosystem adalah sebagai berikut: Misalkan C adalah sebuah linear code (n,k) yang dapat di-decode dengan cepat yang dapat membenarkan error sebanyak t atau kurang, dan G adalah generator matrix untuk C. Misalkan S adalak matriks k × k yang mempunyai invers, dan P adalah matriks permutasi n × n. Maka matriks G’ = SGP
dibuat publik sedangkan S, G, dan P hanya diketahui Bob. Saat Alice ingin mengirim pesan kepada Bob, pesan diubah menjadi vektor biner dengan panjang k. jika x adalah satu blok pesan, Alice menyusun secara acak n-vektor biner dengan bobot t (namakan vektor error sebagai e) dan kemudian mengirimnya kepada Bob sebagai y = xG’ + e
20
Saat Oscar mencoba menyadap pesan, dia harus mencari kunci dari y yang dihasilkan oleh G’, yang memerlukan perhitungan sindrom dari y dan membandingkannya dengan sindrom dari semua vektor error berbobot t. Karena ada n pilihan t dari vektor error ini, pemilihan asal n dan t membuat perhitungan ini sangat sulit dikerjakan. Sedangkan Bob hanya perlu menghitung yP-1 = (xG’ + e)P-1 = xSG + eP-1 = xSG + e’
dimana e’ adalah vektor dengan bobot t. Bob hanya perlu men-decode secara cepat untuk menghilangkan vektor error e’ untuk mendapatkan codeword xSG, dimana pesan x dapat didapat dengan mengalikan codeword tersebut dengan G-1 dan S-1. Misalnya, pada contoh Goppa Code dari McEliece, diambil n = 1024 dan t = 50, membuat penyadap harus melakukan 1080 kemungkinan untuk dihitung. McEliece cryptosystem dapat melakukan enkripsi dan dekripsi dengan benar dan ternilai aman, namun metode ini memiliki tiga kelemahan utama. Kelemahankelemahan tersebut adalah ukuran kunci publik yang lumayan besar, cipher text yang lebih panjang daripada plain text, dan tidak dapat digunakan untuk proses autentifikasi atau tanda tangan digital karena proses enkripsi dan dekripsi yang benar-benar asimetris.
2.6.1 Contoh Kasus McEliece Misalkan Bob ingin Alice mengirim pesan kepada Bob dengan enkripsi McEliece, pada kasus ini digunakan linear code Hamming(7,4) yang dapat memperbaiki error satu bit. Generator matrix dari linear code tersebut adalah:
21
1 0 0 0 1 1 0 G=
0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1
dan Bob memilih scrambler matrix (matriks biner yang mempunyai invers): 1 1 0 1 S=
1 0 0 1 0 1 1 1 1 1 0 0
dan permutation matrix: 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 P=1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 sehingga Bob membuat kunci publik G’ = SGP 1 1 1 1 0 0 0 G' =
1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0
1 1 1 0
Jika Alice ingin mengirim pesan x = (1 1 0 1) kepada Bob, maka Alice pertama-tama membuat vektor error berbobot 1, katakan e = (0 0 0 0 1 0 0), lalu Alice menghitung cipher text: y = xG’ + e = (0 1 1 0 0 1 0) + (0 0 0 0 1 0 0) = (0 1 1 0 1 1 0) dan mengirimnya kepada Bob.
22
Saat Bob menerima pesan tersebut, Bob menghitung y’ yP-1 dimana 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 P −1 = 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 dan didapat y’ = (1 0 0 0 1 1 1). Selanjutnya Bob men-decode y’ dengan algoritma error-correction dari Hamming(7,4) dimana ternyata sindrom dari y’ adalah (1 1 1)T sehingga diketahui letak kesalahan dari y’ berada pada bit ke-7, maka bentuk dari y’ setelah dibenarkan error-nya adalah y’’ = (1 0 0 0 1 1 0), dan karena Hamming code yang digunakan Bob, dengan mudah didapat xS = (1 0 0 0). Setelahnya, Bob bisa mendapatkan pesan asli x dengan mengalikan xS dengan invers dari S: 1 1 0 1 S −1 =
1 1 0 0 0 1 1 1 1 0 0 1
sehingga didapat x = (1 1 0 1), sesuai dengan pesan asli yang ditulis Alice.
2.7 MPEG Layer-III (MP3) MPEG Layer-III (atau lebih dikenal sebagai MP3) adalah format audio digital yang dapat digunakan untuk meringkaskan file suara secara efektif dengan reduksi kualitas seminimal mungkin. Kompresi MP3 didasari dari permodelan psiko-akustik dimana sebenarnya telinga manusia tidak dapat mendengar semua frekuensi suara saat rekaman. Manusia hanya dapat mendengar suara antara 20 Hz sampai 20 kHz, dan paling sensitif pada 2-4 kHz. Saat suara dikompresi menjadi format MP3, suara-suara dengan frekuensi
23
di luar ini, yang tidak dapat didengar oleh manusia, akan dihilangkan. Metode ini dinamakan metode kompresi “destruktif”. Saat mendengar suara hasil kompresi ini, otak akan berpikir bahwa keseluruhan suara tetap utuh.
Gambar 2.9 Struktur File MP3 Sebuah file MPEG tersusun dari bagian-bagian kecil berupa frame. Secara umum, setiap frame saling independen. Setiap frame memiliki header dan informasi audio sendiri-sendiri. Karena tidak ada header file, potongan dari file MPEG dapat diputar dengan benar, namun tidak untuk Layer-III. Karena struktur dan organisasi internal file MP3, setiap frame sering bergantung terhadap frame lainnya. Di bawah ini merupakan susunan dari sebuah header frame MP3:
Gambar 2.10 Struktur Header Frame MP3
24
2.8 ID3 Tag File audio digital dapat memuat informasi berupa teks dan/atau gambar. Informasi yang familiar misalnya judul lagu, nama artis, nama album, tahun, dan genre lagu. Informasi ini ditampilkan saat file audio diputar pada komputer atau perangkat portabel. Proses penambahan informasi ini disebut “tagging” dimana pada sebuah file audio pemakai memberi “tag” yang menjelaskan tentang file audio tersebut. Standar tagging file digital pertama kali dikembangkan tahun 1996 oleh Eric Kemp yang mempopulerkan istilah ID3. Saat itu ID3 berarti “Identify an MP3”.
Gambar 2.11 Struktur File Audio dengan ID3 Tag
2.8.1 ID3v2 Sistem tagging ID3v2 memperbolehkan penambahan informasi relevan dan memperkaya file audio yang ada di dalamnya. Secara sederhana, ID3v2 adalah bongkahan informasi yang disimpan pada data audio biner. Setiap tag ID3v2 menyimpan satu atau lebih bongkahan informasi yang disebut frame. Frame-frame
25
ini dapat menyimpan informasi dalam bentuk apapun seperti judul, album, penyanyi, website, bahkan lirik, pengaturan equalizer, gambar, dan sebagainya.
Gambar 2.12 Struktur File Audio dengan ID3v2 Tag
Desain ID3v2 sangat fleksibel dan dapat dikembangkan. Penambahan fungsi baru pada ID3v2 sangat mudah karena parser akan mengabaikan segala macam informasi yang tidak dikenalinya seperti halnya pada HTML. Karena setiap frame dapat berukuran sampai 16MB dan keseluruhan tag dapat berukuran sampai 256MB, tagging pada file audio tidak lagi seperti pada tag ID3 lama dimana dibatasi hanya dapat sebanyak 30 karakter.
2.9 Android Ed Burnette (2010) menjelaskan bahwa Android adalah open-source software toolkit untuk telepon genggam yang dikembangkan oleh Google dan Open Handset
26
Alliance. Android sudah digunakan pada lebih dari jutaan ponsel dan perangkat mobile lainnya, menjadikannya sebuah platform besar bagi para pengembang program aplikasi. Android merupakan environment pertama yang mengkombinasikan: •
Development platform yang benar-benar terbuka dan gratis, berbasis Linux, dan open-source.
•
Arsitektur berbasis komponen yang terinspirasi dari aplikasi web mashup.
•
Banyak layanan build-in yang ada di luar ruang lingkup.
•
Manajemen siklus hidup (life cycle) aplikasi yang berjalan secara otomatis.
•
Gambar dan suara berkualitas tinggi.
•
Portabilitas dengan beragam hardware masa kini dan yang akan datang.