ALGORITHM (VEA)
SKRIPSI
KONSENTRASI TEKNIK INFORMATIKA DAN KOMPUTER
Diajukan untuk memenuhi sebagian persyaratan Memperoleh gelar Sarjana Teknik
Disusun oleh:
KARINA SEFTIA DEWANTI NIM. 0810633056 - 63
KEMENTERIAN PENDIDIKAN NASIONAL UNIVERSITAS BRAWIJAYA
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
MALANG 2012
BAB I PENDAHULUAN
1.1 Latar Belakang
Keamanan data multimedia sangat penting dalam bisnis komersil maupun tidak komersil. Contohnya, pada aplikasi video on demand, hanya orang yang membayar yang dapat menonton video tersebut. Selain itu juga pada aplikasi video conferencing, hanya orang yang berkepentingan saja yang dapat ikut serta dalam konferensi tersebut dan mendapatkan datanya.
Salah satu cara untuk mengamankan aplikasi distributed multimedia seperti pada contoh-contoh di atas adalah dengan mengenkripsinya menggunakan algoritma kriptografi seperti DES (Data Encryption Standard) atau IDEA (International Data Encryption
Algorithm). Masalahnya, algoritma kriptografi tersebut memiliki komputasi yang rumit.
Implementasi dari algoritma kriptografi ini tidak cukup cepat untuk memproses sejumlah besar data yang dihasilkan oleh aplikasi multimedia. Dua hal yang dapat diperhatikan dari enkripsi data multimedia adalah: pertama, ukuran data multimedia biasanya sangat besar. Sebagai contoh, ukuran data dari video MPEG-1 berdurasi dua jam kira-kira 1 GB. Kedua, data multimedia harus diproses dengan delay sekecil mungkin.
Banyak algoritma enkripsi video yang telah dibangun sampai saat ini, tetapi algoritma yang umum digunakan terutama untuk aplikasi video streaming adalah algoritma
Video Encryption, atau sering disebut juga VEA (Video Encryption Algorithm). Pada
algoritma ini byte-byte pada frame video, di-XOR-kan dengan suatu byte kunci tertentu yang telah didefinisikan. Hasil operasi XOR tersebut kemudian diterapkan pada file video, sehingga video yang dihasilkan memiliki kualitas gambar tidak sempurna. Video hasil enkripsi dengan VEA itulah yang nantinya diterima oleh user yang tidak berhak/belum memasukkan kunci tertentu yang telah didefinisikan. Alasan banyaknya penggunaan algoritma ini adalah karena tingkat keamanannya yang cukup memuaskan, komputasi yang ringan, dan cocok diimplementasikan di lingkungan video streaming karena algoritmanya yang dapat berbasis stream cipher maupun block cipher, tergantung kebutuhan saat
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan secara jelas diatas, maka rumusan masalah ditekankan pada:
1. Bagaimana mengenkripsi dan mendekripsi video streaming MPEG dengan Video
Encryption Algorithm (VEA).
2. Bagaimana mencari macroblock pada file MPEG yang akan dienkripsi.
3. Bagaimana hasil pengujian dari video streaming setelah proses enkripsi dan dekripsi.
1.3 Batasan Masalah
Beberapa hal yang menjadi batasan masalah dalam pembuatan program ini antara lain:
1. Tidak mempelajari maupun membuat encoder dan decoder (player) video. 2. File format video yang digunakan hanya Mpeg-1, Mpeg-2, Mpeg-4.
3. Data yang dienkrispi adalah data video tanpa audio.
4. Bahasa pemograman yang digunakan untuk pembuatan aplikasi ini adalah C#.
5. Aplikasi yang digunakan untuk membuat dan menyunting listing program adalah
Microsoft Vsual Studio 2008 versi 9.0.21022.8 RTM dan .NET Framework versi 3.5 SP1.
6. Menggunakan library Aforge untuk membuat proses streaming dan player. 7. Komunikasi antar komputer menggunakan protokol TCP/IP.
8. Tipe streaming yang digunakan adalah peer to peer.
1.4 Tujuan
Tujuan dari penyusunan skripsi ini adalah merancang dan mengimplementasikan aplikasi untuk kriptografi pada video streaming MPEG menggunakan algoritma VEA.
1.5 Manfaat
Manfaat yang diharapkan adalah aplikasi yang dibuat dalam skripsi ini dapat mengamankan video streaming MPEG menggunakan algoritma VEA.
1.6 Sistematika Penulisan
Sistematika penulisan laporan skripsi ini adalah sebagai berikut : BAB I Pendahuluan
Dalam bab ini akan dijelaskan latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat, metode penelitian dan sistematika penulisan laporan tugas akhir.
BAB II Dasar Teori
Dalam bab ini akan dibahas dan dijelaskan mengenai dasar teoritisyang menjadi landasan dan mendukung pelaksanaan penulisan tugas akhir.
BAB III Metodologi
Dalam bab ini akan membahas tentang metode yang dipakai penulis untuk menyelesaikan laporan tugas akhir.
BAB IV Perancangan dan Implementasi
Dalam bab ini menjelaskan langkah - langkah perancangan dan implementasi dari video streaming MPEG menggunakan algoritmaVEA.
BAB V Pengujian
Dalam bab ini akan disampaikan hasil pengujian dari aplikasi yang telah dibuat. BAB VI Kesimpulan dan Saran
BAB II
TINJAUAN PUSTAKA
2.1 Video
Video adalah gabungan dari banyak citra digital yang disertai suara. Citra –citra digital diperlihatkan sesuai urutan dengan jangka waktu tertentu sehingga gambar tampak bergerak. Untuk dapat mengolah video, maka harus mendapatkan data warna pada frame – frame yang ada pada video. Karena frame – frame tersebut berupa sebuah citra digital, maka dalam pengolahan video tidak dapat telepas dari pengolahan citra digital dimana sesuai dengan algoritma sesuai format video yang dipakai seprti AVI, MPEG.
2.1.1 MPEG
MPEG adalah singkatan dari Moving Picture Experts Group merupakan format kompresi yang didirikan oleh group yang bernama Motion Picture Editors Guild (MPEG) yang mengeluarkan standar tahun 1988, yang terbentuk oleh 350 perusahaan dan organisasi. MPEG adalah metode standar yang digunakan dalam pengkodean citra bergerak. MPEG menetapkan standar yaitu codec. Codec MPEG menggunakan lossy
compression pada data audio video. Bagian motion (gerak) video pada standard MPEG-1
didapat dari standard Joint Picture Experts Group (JPEG) untuk lossy compression gambar diam (foto). MPEG memliki format standar kompresi sebagai berikut :
a) MPEG-1 adalah standard pertama untuk kompresi audio dan video. merupakan standard encode VideoCD dengan resolusi maksimal hanya 352 x 288 pixel, bit-rate tidak dapat dirubah dan kualitas gambar yang kurang baik.Ini juga termasuk format audio MP3. MPEG-1 digunakan pada format Video CD. Kualitas output dan bit-rate lebih kecil daripada VCR.
b) MPEG-2 adalah seri standard transport , audio dan video untuk kualitas siaran televisi. MPEG-2 sama dengan MPEG-1, tetapi juga menyediakan dukungan untuk interlaced video (seperti pada siaran TV) dan juga mendukung Transport Stream yang dibuat untuk mentranfer video dan audio digital pada media dan digunakan untuk broadcasting. Standard MPEG-2 saat ini telah ditingkat menjadi standard terbaru untuk transmisi HDTV. Saat ini digunakan untuk SVCD, DVD dengan tingkat bit yang dapat diubah dan
memiliki kualitas gambar yang luar biasa. DV Video merupakan subformat khusus dari MPEG-2 dengan tingkat bit yang tetap. Format ini sangat cocok digunakan untuk video editing.
c) MPEG-3 dikembangkan untuk high-definiton television (HDTV), tetapi kemudian ditinggalkan karena dianggap MPEG 2 memadai.
d) MPEG-4 merupakan pengembangan MPEG 1 mendukung Digital Rights Management (DRM) dan bit-rate encoding rendah, serta menggunakan codec video yang disebut H.264 yang dipandang lebih effisien. MPEG-4 berbasis MPEG-1 dan MPEG-2, tetapi ada tambahan fitur seperti dukungan VRML untuk rendering 3D, files komposit berorientasi objek (termasuk audio, video dan virtual reality modelling), dukungan untuk DRM dan berbagai macam interaktivitas . Kontainer untuk kandungan MPEG-4 adalah MP4.
e) MPEG-7 adalah sistem formal untuk mendeskripsikan isi multimedia. f) MPEG-21 merupakan standard multimedia untuk masa depan
g) MPEG-A standar ini menyediakan aplikasi-spesifik format dengan mengintegrasikan beberapa teknologi MPEG;
h) MPEG-B Kumpulan standar Sistem spesifik i) MPEG-C Kumpulan standar Video spesifik j) MPEG-D Kumpulan standar khusus Audio
k) MPEG-E Sebuah standar (M3W) dukungan penyediaan untuk men-download dan eksekusi aplikasi multimedia
l) MPEG-V standar untuk pertukaran dengan dunia virtual
m) MPEG-M Sebuah standar (MXM) untuk kemasan dan usabilitas dari MPEG teknologi n) MPEG-U standar untuk kaya-media user interface
o) MPEG-H Sebuah standar (HEVC) memberikan kinerja video kompresi meningkat secara signifikan.
2.1.2 Struktur MPEG
Gambar 2.1 Struktur File Format MPEG
Secara umum file format video MPEG tersusun dari kumpulan - kumpulan sequensial. Dalam setiap Sequensial didalamnya terdapat bagian - bagian lagi misal informasi mengenai resolusi, bitstream, dan GOP seperti Gambar 2.1. Setiap Sequensial bisa mempunyai jumlah 1 atau lebih GOP (group of Picture). Di dalam GOP tersusun dari informasi (parameter dari header) mengenai gambar (picture/frame) dan data (isi dalam parameter dari header) dari gambar, dimana gambar bisa berjumlah 1 atau lebih. Di dalam picture terdapat informasi – informasi mengenai tipe gambar, parameter DCT/IDCT dan data gambar itu sendiri atau disebut slice.
Sebuah gambar (picture/frame) dapat bertipe I (intracoded), P (predicted), atau B (bidirectional – predicted). Slice tersusun dari informasi - informasi mengenai macroblock dan datanya, dimana macroblock bisa berjumlah 1 atau lebih. Macroblock merupakan basic
coding unit atau tersusun dari bagian terkecil dari Algoritma MPEG yaitu blok. Macroblock
komponen Y, Cr, Cb beserta resolusinya. Macroblock dari gambar/frame I diencode berbeda dengan macroblock dari gambar/frame B dan P, karena gambar/frame B dan P dibutuhkan dua buah motion vector : forward prediction vector dan backward prediction
vector. Macroblock dari tiap-tiap gambar/frame pada akhirnya akan dibagi-bagi menjadi 4
buah 8 x 8 blok luminance (Y block), 2 buah 8 x 8 blok chrominance (Cr block dan Cb
block). Blok-blok Y, Cr, dan Cb yang terbentuk tersebut akan diproses ke dalam DCT
(Discrete Cosine Transformation), kuantisasi, dan Huffman entropy coding.
2.1.3 Header MPEG
Setiap stream header pasti dimulai dengan 32 bit Start Code, dimana untuk kode 00-B8 merupakan video stream start code dan untuk B9-FF adalah stream-id.
byte 0 byte 1 byte 2 byte 3
0000 0000 0000 0000 0000 0001 Video stream start code / Stream ID
Start code prefix
Tabel 2.1 Struktur Start Code Header MPEG
Start code used for
0x00 Picture 0x01 - 0xAF Slice 0xB0 Reserved 0xB1 Reserved 0xB2 user data 0xB3 Sequence header 0xB4 sequence error 0xB5 Extension 0xB6 Reserved 0xB7 sequence end 0xB8 Group of Pictures
Stream ID used for
0xB9 Program end (terminates a program stream)
0xBA Pack header
0xBB System Header
0xBC Program Stream Map
0xBD Private stream 1
0xBE Padding stream
0xBF Private stream 2
0xC0 - 0xDF MPEG-1 or MPEG-2 audio stream
0xE0 - 0xEF MPEG-1 or MPEG-2 video stream
0xF0 ECM Stream
0xF1 EMM Stream
0xF2
ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A or ISO/IEC 13818-6_DSMCC_stream
0xF3 ISO/IEC_13522_stream
0xF4 ITU-T Rec. H.222.1 type A
0xF5 ITU-T Rec. H.222.1 type B
0xF6 ITU-T Rec. H.222.1 type C
0xF7 ITU-T Rec. H.222.1 type D
0xF8 ITU-T Rec. H.222.1 type E
0xF9 ancillary_stream
0xFA - 0xFE Reserved
0xFF Program Stream Directory
Tabel 2.3 Stream ID
2.2 Video Streaming
Sampai beberapa saat yang lalu, video dikirim dengan metode “download and play” dimana seluruh video di download melalui network ke komputer client yang meminta video tersebut dan kemudian video tersebut disimpan di harddisk client. Setelah seluruh video tersimpan di harddisk client, barulah video tersebut dapat dijalankan. Keuntungan dari metode download ini adalah video dengan kualitas tinggi dapat dikirim. Kerugiannya adalah bandwidth network yang dibutuhkan untuk mengirimkan video sangat tinggi, pengguna harus menunggu dalam jangka waktu yang lama untk men-download sebuah
video dan juga sejumlah besar tempat penyimpanan di harddisk sangat dibutuhkan untuk menyimpan video yang ukurannya relatif cukup besar. Gambar 2.2 adalah ilustrasi dari metode “download and play”
Untuk mengatasi masalah ini, sebuah teknologi baru dibangun untuk mengirim video digital yang telah di kompresi ke sebuah jaringan network yang disebut “video
streaming”. Video streaming menggunakan teknologi kompresi video dan juga network protocol yang dibuat khusus untuk real-time media streaming. Protokol-protokol baru ini
dapat mengsinkronisasikan audio dan video untuk dimainkan di desktop client sebelum seluruh file video selesai diterima. Keuntungan yang didapat adalah client dapat memainkan video lebih cepat dan tidak membutuhkan jumlah space harddisk yang besar. Keuntungan lainnya adalah bandwidth network yang dibutuhkan untuk mengirim video sangat rendah serta video yang di-streaming juga dapat dimainkan di web browser. Gambar 2.3 menunjukkan model dari video streaming.
Gambar 2.2 Model Download
Ketika file audio atau video berada dalam proses streaming, maka sebuah tempat penampung kecil yang biasa disebut juga buffer akan terbentuk di computer pengguna, dan data dari audio atau video yang diminta pengguna akan ditransfer ke buffer tersebut. Ketika
buffer sudah penuh, file streaming tersebut akan mulai dijalankan. Untuk menjalankan file streaming dibutuhkan informasi yang tersimpan di dalam buffer yang mana informasi
tersebut akan teus bertambah seiring berjalannya file streaming. Selama data atau informasi tetap dapat terkirim ketika file streaming tersebut dijalankan, file streaming ini akan terus berjalan dengan lancar.
FILE
Jalankan setelah diterima Client
Video
server Buffer Paket data Paket data Paket data Buffer
Gambar 2.3 Model Streaming
Biasanya terdapat delay waktu antara 10 sampai 30 detik sebelum file audio atau video tersebut dimainkan. Streaming file biasanya merupakan bandwidthyang lebih sedikit dibandingkan men-download file. Besar tidaknya bandwith yang dibutuhkan juga tergantung dari jenis video yang akan di-streaming. Tabel 2.4 menunjukkan daftar jenis video beserta keterangan bandwidth yang dibutuhkan untuk streaming.
Tabel 2.4 Macam - Macam Format Video
Format Content Type Quality CPU
Requirement
Bandwidth Requirement
Cinepak AVI
QuickTime
Medium Low High
MPEG-1 MPEG High High High
H.261 AVI
RTP
Low Medium Medium
H.263 QuickTime
RTP AVI
Medium Medium Low
JPEG QuickTime
RTP AVI
High High High
Indeo QuickTime
AVI
Dapat dilihat dari Table 2.4, high quality dan high bandwidth format biasa digunkan untuk CD-ROM. H.261 dan H.263 biasa digunkan untuk aplikasi video conferencing. Biasanya video dengan high quality akan memilki ukuran file yang besar, serta membutuhkan proses dan bandwidth yang cukup besar pula. Untuk mendapatkan tampilan video yang bagus, maka jumlah frame yang ditampilkan per waktu (frame rate) harus sebesar mungkin. Biasanya video streaming menggunakan sekitar 30 frame rate (30 frame per detik)
2.3 Kriptografi
Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman. Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu dari kata cryptós yang artinya secret (yang tersembunyi) dan gráphein yang artinya writting (tulisan). Jadi, kriptografi berarti secret writting (tulisan rahasia). Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut Cryptology yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.Tetapi tidak semua aspek keamanan informasi ditangani oleh kriptografi.
2.3.1 Algoritma Kriptografi
Secara sederhana proses kriptografidapat digambarkan sebagai berikut :
Gambar 2.4 Ilustrasi dari proses kriptografi sederhana
Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext
inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali ke dalam bentuk
plaintext agar dapat dikenali. Proses tranformasi dari plaintext menjadi ciphertext disebut
proses Encipherment atau enkripsi (encryption), sedangkan proses mentransformasikan kembali ciphertext menjadi plaintext disebut proses dekripsi (decryption). Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering.
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
proses dekripsi ditulis dalam Persamaan 2.1 :
E (P) = C (2.1)
Dimana, E : Enkripsi
P : Pesan (plaintext) yang akan diamankan C : Chipertext
Sedangkan proses dekripsi ditulis dalam Persamaan 2.2 :
D (C) = P (2.2)
Dimana, D : Dekripsi
C : Chipertext yang akan dirubah menjadi plaintext P : Pesan (plaintext) yang telah dibuka
Karena proses enkripsi dan dekripsi mengembalikan pesan ke pesan awal, maka Persamaan 2.3 harus benar,
Pada saat proses enkripsi kita menyandikan pesan P dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan P yang sama seperti pesan sebelumnya. Contoh dari enkripsi dan dekripsi pada data teks :
Plainteks : “coba lah tulis”
Cipherteks :” ” Hasil dekripsi terhadap cipherteks di atas : “coba lah tulis”
Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan.Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang digunakan. Selama tidak mengetahui kunci yang digunakan maka tetap tidak dapat membaca pesan.
Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua golongan yaitu kriptografi kunci Simetri dan kriptografi kunci asimetri.
2.3.2 Kriptografi Kunci Simetri
Algoritma kriptografi simeteris atau disebut juga algoritma kriptografi konvensioanl adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi, oleh karena itulah dinamakan kriptografi simetri. Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya. Ada banyak algoritma kriptografi modern yang termasuk ke dalam sistem kriptografi simetri, diantaranya adalah DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, AES (Advanced Encryption Standard).
Gambar 2.5 Proses Enkripsi/Dekripsi Algoritma Kriptografi Simetris
Enkripsi Dekripsi
Plaintext Ciphertext Plaintext
Algoritma kriptografi (cipher) simetri dapat dikelompokkan menjadi dua kategori (Lung dan Munir, 2005), yaitu stream cipher (Cipher Aliran) dan block cipher (Cipher Blok).
2.3.2.1 Stream Cipher (Cipher Aliran)
Cipher Aliran beroperasi pada plainteks/cipherteks dalam proses penyandiannya
berorientasi pada satu bit data (bit tunggal), yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit. Cipher aliran mengenkripsikan plainteks menjadi chiperteks bit per bit (1 bit setiap kali transformasi). Proses enkripsi menggunakan cipher aliran dapat ditulis dalam Persamaan 2.4 :
c
i= p
i
k
i (2.4)yang dalam hal ini,
pi : bit plainteks ki: bit kunci
ci : bit cipherteks
Dan proses dekripsi dapat ditulis dalam Persamaan 2.5 :
p
i= c
i
k
(2.5)Contoh sederhana dari penerapan stream cipher pada plaintext. Mode enkripsi
11001100 Plaintext (+) 01101100 Keystream
Mode dekripsi
10100000 Ciphertext (+) 01101100 Keystream 11001100 Plaintext
Stream chipper cocok digunakan untuk mengenkripsi aliran data secara terus –
menerus melalui saluran komunikasi. Contohnya seperti pengiriman data antar dua computer dan video streaming. Jika bit ciphertext yang diterima terdapat kesalahan. Maka hal ini hanya mengakibatkan satu bit yang salah ketika di dekripsi, karena tiap bit plaintext hanya ditentukan dari satu bit chipertext. Kondisi ini tidak benar jika menggunakan cipher blok. Jika terdapat satu bit yang salah maka akan merambat kepada bit – bit lain pada blok bit tersebut.
2.3.2.2 Block Cipher (Cipher Blok)
Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok), yang dalam hal ini rangkaian bit dbagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Contoh algoritma kunci simetris yang terkenal adalah Advanced Encryption
Standard (AES).
Pada cipherblok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma enkripsi menghasilkan blok cipherteks yang – pada kebanyakan sistem kriptografi simetri – berukuran sama dengan blok plainteks.
Dengan blokcipher, blok plainteks yang sama akan dienkripsi menjadi blok cipherteks yang sama bila digunakan kunci yang sama pula. Ini berbeda dengan cipher aliran dimana bit-bit plainteks yang sama akan dienkripsi menjadi bit-bit cipherteks yang berbeda setiap kali dienkripsi.
Misalkan blok plainteks (P) yang berukuran m bit dinyatakan sebagai vektor adalah
yang dalam hal ini pi adalah 0 atau 1 untuk i = 1, 2, …, m dan blok cipherteks (C) adalah
C = (c1, c2, …,cm) (2.7)
yang dalam hal ini ci adalah 0 atau 1 untuk i = 1, 2, …, m. Bila plainteks dibagi menjadi n
buah blok, barisan blok-blok plainteks dinyatakan sebagai
(P1, P2, …,Pn) (2.8)
Untuk setiap blok plainteks Pi, bit-bit penyusunnya dapat dinyatakan sebagai vektor Pi = (pi1, pi2, …,pim) (2.9)
Enkripsi dan dekripsi dengan kunci K dinyatakan berturut-turut dengan persamaan
EK(P) = C (2.10)
untuk enkripsi, dan
DK(C) = P (2.11)
Fungsi E haruslah fungsi yang berkoresponden satu-ke-satu, sehingga
E-1 = D (2.12)
Fungsi E dan D dispesifikan oleh kriptografer.
Enkripsi: Dekripsi:
Blok Plainteks P Blok Cipherteks C
P = (p1, p2, …,pm) C = (c1, c2, …, cm)
Kunci K Enkripsi,E Kunci K Dekripsi, D
Blok Cipherteks C Blok Plainteks P
C = (c1, c2, …,cm) P = (p1, p2, …, pm)
Gambar 2.6 Skema enkripsi dan dekripsi pada cipher blok
2.3.3 Kriptografi Kunci Simetri
Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key).Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA dan ECC.
Gambar 2.7 Proses Enkripsi/Dekripsi Algoritma Kriptografi Asimetris
Enkripsi Dekripsi
Plaintext Ciphertext Plaintext
2.4 Video Encryption Algorithm (VEA)
Sama dengan enkripsi pada data teks, enkripsi video juga memiliki algoritma sendiri. Umumnya video dapat dienkripsi langsung dengan menggunakan algoritma enkripsi kunci rahasia yang telah banyak beredar saat ini, seperti DES, AES, dan lain-lain, tetapi enkripsi seperti itu membutuhkan waktu yang cukup lama, karena ukuran video yang cukup besar.
Algoritma enkripsi video yang umum digunakan adalah VEA (Video Encryption
Algorithm). Algoritma ini memiliki berbagai macam modifikasi yang disesuaikan
berdasarkan kebutuhan, karena kemudahannya dalam implementasi. Salah satu tipe modifikasinya diberi nama MVEA (Modified VEA). Berikut adalah skema global dari algoritma VEA:
1. Buka file MPEG (misalnya Mpeg-1/Mpeg-2 dengan ekstensi .mpg dan Mpeg-4 dengan ekstensi .mp4)
2. Baca frame file MPEG, baca tipe frame-nya. 3. Baca bit stream dari frame tersebut.
4. Jika frame dari bit stream bukan frame I, maka bit stream langsung ditulis ke file tujuan. 5. Jika bit stream tersebut merupakan bit stream dari frame I, maka bit-bit tersebut di-XOR
kan dengan kunci.
6. Tulis hasil enkripsi ke file tujuan.
7. Baca frame selanjutnya, kembali ke langkah nomor 2 sampai End-of-File.
File MPEG streaming (.mpg / .mp4)
Buka File MPEG streaming (.mpg / .mp4)
Tipe frame = I?
Baca bistream MPEG
XOR bit – bit video dengan kunci
Tulis hasil ke file tujuan Selesai ? Simpan Kunci Tidak Tidak Ya Ya
Gambar 2.8 Diagram Alir Algoritma VEA untuk video MPEG
VEA (Video Encryption Algorithm) merupakan sebuah algoritma enkripsi video yang berbasis pada cipher aliran (stream cipher). Kunci rahasia VEA, k, di-generate secara random dalam bentuk bitstream dengan panjang m, yang dapat ditulis sebagai k = b1b2...bm. Bitstream dari video dapat direpresentasikan dengan:
S = ...s1...s2...sm...sm+1...sm+2...s2m..
yang dalam hal ini si (i = 1,2,...) adalah seluruh bit-bit dari video. Fungsi enkripsi VEA, Ek(S) dapat ditulis dengan:
Ek(S) = ...(b1 ⊕s1) ... (bm ⊕sm+1) ... (bm ⊕s2m) ... yang dalam hal ini ⊕ adalah operasi XOR.
2.5 Algoritma Message Digest 5 (MD5)
MD5 adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest. MD5 merupakan perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit. Gambaran pembuatan message digest dengan algoritma MD5 diperlihatkan pada Gambar 2.9.
Pesan Dan Ukuran pesan
Penambahan Bit Padding Inisialisasi Buffer MD Pengolahan pesan dalam blok berukuran tiap 512 bit Output MD5
Gambar 2.10 Blok Diagram Umum MD5
Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut : 1. Mendapatkan pesan yang akan dilakukan MD5 dan mendapatkan ukuran dari pesan. 2. Penambahan bit-bit pengganjal (padding bits).
3. Insialisasi penyangga (buffer) untuk proses MD.
4. Pengolahan pesan dalam tiap 512 bit dan melakukan proses putaran dan operasi dasar MD5.
5. Mendapatkan hasil output MD5.
Contoh sederhana masukan – keluaran MD5 : Masukan = ”” Keluaran = d4 1d 8c d9 8f 00 b2 04 c9 80 09 98 ec f8 42 7e Masukan = “a” Keluaran = 0c c1 75 b9 c0 f1 b6 a8 31 c3 99 e2 69 77 26 61 Masukan = “b” Keluaran = 92 eb 5f fe e6 ae 2f ec 3a d7 1c 77 75 31 57 8f
Masukan MD5 dalam contoh di atas adalah karakter kosong (“”), a, dan b. Keluaran berupa bilangan hexa dan jumlahnya 128 bit. Misalkan d berarti sama dengan angka 13 desimal tau 1101 biner. Hanya dengan masukan yang berbeda satu karakter, keluaran mengalami perubahan drastis. Sifat seperti ini sengaja dibuat agar bila diketahui keluaran, sangat sulit atau mustahil untuk mengetahui masukannya.
2.6 Framework Aforge.net
Framework Aforge.net merupakan framework C# yang dirancang bagi para
pengembang dan peneliti di bidang komputer vision dan artificial intelligence yang meliputi pengolahan citra, jaringan syaraf tiruan, algoritma genetika, logika fuzzy, juga
video processing.
Framework Aforge.net terdiri dari library – library yang mempunyai fitur dan
kegunaan masing antara lain :
AForge.Imaging - library dengan fungsi – fungsi pangolahan citra dan filter. AForge.Vision – library dengan fungsi – fungsi computer vision.
AForge.Video – kumpulan library – library untuk video processing. AForge.Neuro - library dengan fungsi – fungsi komputasi jaringan syaraf.
AForge.Genetic - library dengan fungsi – fungsi pemrograman genetik atau evolusi. AForge.Fuzzy - library dengan fungsi –fungsi komputsai fuzzy.
AForge.Robotics - library yang menyediakan beberapa fungsi bantuan untuk robotika.
AForge.MachineLearning - library dengan fungsi –fungsi machine learning.
Pada framework Aforge.net.Video menyediakan 2 library untuk melakukan video
processing yaitu AForge.Video.DirectShow dan AForge.Video.FFMPEG. Pada
Aforge.net.Video.DirectShow menggunakan library dari DirectShow yang merupakan bagian dari DirectX yang menangani masalah video. Sedangkan AForge.Video.FFMPEG menggunakan library dari ffmpeg untuk melakukan video processing namun dari pihak Aforge menyatakan masih bahwa penggunaan library ffmpeg ini masih dalam tahap pengembangan.
2.7 Real-Time Transport Protocol (RTP)
Teknologi yang digunakan dalam media streaming adalah RTP atau Real Time
Transport Protocol. RTP menyediakan layanan pengiriman jaringan untuk transmisi data real time. RTP adalah jaringan dan protokol transport-independen, meskipun sering
digunakan di atas UDP. RTP dapat digunakan pada layanan jaringan unicast dan multicast. Melalui layanan unicast, salinan data yang dipisahkan dikirimkan dari sumber ke tujuan,dan jika pada layanan multicast, data dikirimkan dari sumber hanya sekali dan jaringanlah yang bertanggung jawab untuk mentransmisikan data ke berbagai lokasi. Maka dari itu layanan multicast lebih efisisen untuk berbagai aplikasi multi media, seperti video
conferences.
2.7.1 RTP Header
Dalam sebuah paket RTP terdapat 2 bagian. Yaitu RTP Header dan data yang hendak dikirim. Data yang hendak kita kita melalui RTP memiliki header sebagai pengenal bahwa data tersebut adalah data RTP. Gambar 2.11 adalah gambar dari header dari sebuah paket data RTP.
Gambar 2.11 RTP Header
Penjelasan tentang RTP header adalah sebagai berikut :
1. Version (V) adalah versi dari protocol tersebut. RTP memiliki versi 2. Version memiliki besar 2 bit.
2. Padding (P) adalah jika terdapat byte padding pada paket RTP. Padding memiliki besar 1bit.
3. Extension (X) merepresentasikan sebuah ekstensi header antara header yang standar dengan playload data.
4. CSRC Count (CC) berisi tentang identifikasi dari CSRC yang mengikuti header yang benar. CSRC Count memiliki besar 4 bit.
5. Marker (M) digunakan pada layer application. jika nilai dari Marker berisi 1, maka data yang dikirim memiliki relevansi yang special dengan aplikasi sebelumnya. Marker memiliki besar 1 bit.
6. Playload Type (PT) menindikasikan format dari playload dan interpretasi dari aplikasi tersebut. Playload Type ditentukan dari profile RTP. Playload Type memilki besar 7 bit. 7. Sequence Number (SN) adalah angka berurutan yang akan bertambah satu untuk setiap data paket yang dikirimkan oleh RTP yang digunakan. Fungsinya adalah untuk mendeteksi paket loss dan mengembalikan urutan paket. RTP tidak mengambil tindakan apapun ketika terjadi paket loss tapi Sequence Number memungkinkan untuk mendeteksi paket mana yang hilang. Sequence Number memiliki besar 16 bit.
8. Timestamp digunakan untuk memungkinkan penerima dapat memutar kembali sampel yang diterima pada interval yang tepat.
9. Synchronization Source (SSRC) identifier digunakan untuk mensinkronkan data RTP yang diterima dengan data yang telah dikirim dari source.
10. Contributing source (CSRC) identifier digunakan untuk menghitung sumber-sumber untuk aliran yang dihasilkan dari berbagai sumber.
2.7.2 RTP Control (RTPC)
RTPC berfungsi untuk menyediakan statistic out-of-band dan sebagai informasi control untuk RTP. RTPC adalah penunjang RTP dalam penyampaian data multimedia. Biasanya RTP akan dikirim pada port UDP genap, sedangkan RTP Control dikirim pada port yang ganjil.
Fungsi utama dari RTPC adalah untuk memberikan laporan tentang kualitas layanan (QoS) dalam media distribusi dengan secara berkala mengirimkan informasi statistik kepada peserta dalam sesi multimedia streaming. RTPC membedakan beberapa jenis paket yaitu
sender report, receiver report, source description, dan bye. Selain itu terdapat pula
BAB III
METODE PENELITIAN
Pada tahap ini dijelaskan mengenai langkah-langkah yang akan dilakukan untuk merancang dan mengimplementasikan perangkat lunak yang akan dibuat. Adapun langkah-langkah yang akan dilakukan adalah sebagai berikut:
3.1 Penentuan Spesifikasi Alat
Menentukan perangkat yang digunakan untuk menunjang pembuatan aplikasi : a) Perangkat Keras:
1) 2 unit PC
Intel Core 2 Duo E7500 2.93GHz (2 CPUs), mainboard FOXCONN ETON, DDR3 1024MB, VGA intel GMA X4500 Graphics, harddisk 320GB.
2) 1 Switch
Dlink DES-1024R+ ,24 port , 10/100Mbps, full duplex. 3) 2 Kabel UTP RJ45 straight.
b) Perangkat Lunak:
1) OS Windows XP service pack 3,dengan syarat minimum spesifikasi:
Hadware Minimum
Prosesor 233 MHz
Memori 64 MB
Monitor Resolusi 600 x 800 Hard Disk Free 1,5GB
Optical drive CD-ROM
Peralatan Input Mouse dan Keyboard
Sound Speaker
2) Bahasa pemrograman C#
3) Microsoft Vsual Studio 2008 versi 9.0.21022.8 RTM dan .NET Framework versi 3.5 SP1 dengan minimum spesifikasi :
Hadware Minimum Prosesor 1.6 GHz Memori 384 MB
Monitor Resolusi 1024 x 768 Hard Disk Free 2.2 GB
Optical drive DVD-ROM
PeralatanInput Mouse dan Keyboard Sistem operasi XP Service Pack 2
Tabel 3.2 Minimum Spesifikasi Microsoft Visual Studio 2008
4) Aforge.net versi 2.2.3.
5) File Video MPEG dengan format Mpeg-1, Mpeg-2,dan Mpeg-4.
3.2 Perancangan dan Implementasi Sistem
Secara garis besar desain yang akan dibuat untuk aplikasi Enkripsi Video Streaming menggunakan VEA terdiri dari 2 bagian :
Program sisi Transmtiter atau Server
Program ini bertugas untuk menyediakan file video yang akan akan distreamingkan, mengenkripsi data video tersebut saat distreamingkan, dan membuat sesi streaming agar
client bisa membangung koneksi streaming.
Program sisi Receiver atau Client
Program ini bertugas untuk membangun koneksi streaming dengan server, mendekripsi data yang telah diterima dari server, dan menampilkan data video yang diterima yang telah didekripsi tersebut. Namun, jika tidak dilakukan proses dekripsi data video yang akan ditampilkan masih berupa data yang masih terenkripsi.
Enkripsi yang digunakan berbasis stream cipher yakni VEA (Video Encryption
Algorithm ). Dimana aliran bit pada macroblock pada frame I baik berupa 0 atau 1 akan di–
cara masukan key dari user akan dimasukan ke fungsi hash MD5 sehingga menjadi bertambah kuat proses enkripsinya.
Gambaran umum sistem dengan proses enkripsi dan dekripsi dapat dilihat dalam Gambar 3.1.
.
Gambar 3.1 Rancangan Umum Sistem dengan Proses Enkripsi Tanpa Dekripsi
Sedangkan gambaran umum sistem dengan proses enkripsi tanpa dekripsi dapat dilihat dalam Gambar 3.2.
Gambar 3.2 Rancangan Umum Sistem dengan Proses Enkripsi dan Dekripsi
3.2.1 Diagram Alir Umum Sistem
Sistem enkripsi video streaming ini terdiri dari beberapa komponen yang dapat digambarkan secara umum dengan model seperti pada Gambar 3.3.
Start End File Video MPEG Streaming (.mpg / .mp4) Transmitter membuat sesi streaming
Enkripsi data video
Transmitter mengirim / streaming data kepada receiver Receiver membangun koneksi streaming dengan transmitter Receiver menerima data dari transmitter Dekripsi data video Receiver memainkan data yang diterima Input Key dari user Proses MD5 pada Key
Gambar 3.3 Diagram Alir Umum Sistem
Keterangan dari diagram alir pada Gambar 3.3 :
1. Mendapatkan file video Mpeg-1/Mpeg-2 dengan ekstensi .mpg dan Mpeg-4 dengan ekstensi .mp4 yang akan distreamingkan.
2. Mendapatkan private key dari user yang akan digunakan untuk proses enkripsi dan dekripsi.
3. Melakukan proses hash pada key dengan algoritma MD5 yang bertujuan untuk memperkuat enkripsi data video.
4. Transmitter/ server membuat sesi streaming supaya client / receiver dapat membangun koneksi sehingga Transmitter/ server dapat mengirim data streaming.
Start End File Video MPEG streaming (.mpg / .mp4) Input Key (kunci) Proses MD5 dari Key
Baca File MPEG
Apakah Frame I ?
Ambil Bit Stream
MacroBlock
XOR bit – bit dengan Key
Kirim Paket data
Akhir dari File MPEG
Ya
Tidak
Tidak
Ya
5. Receiver /client melakukan proses koneksi streaming dengan transmitter.
6. Setelah terbangun koneksi antara transmitter dengan receiver, maka dilakukan proses pengiriman data. Namun data yang dikirim akan dienkripsi terlebih dahulu.
7. Proses pengiriman atau streaming data dari transmitter kepada receiver. 8. Receiver proses menerima data streaming dari transmitter.
9. Data yang diterima akan didekripsi oleh receiver untuk mendapatkan data awal.
10. Setelah didapat data video original dari proses dekripsi, maka receiver memainkan data video MPEG tersebut.
3.2.2 Diagram Alir Enkripsi VEA
Diagram alir dari enkripsi VEA ditunjukan pada Gambar 3.4:
Keterangan dari diagram alir pada Gambar 3.4 :
1. Mendapatkan File video Mpeg-1/Mpeg-2 dengan ekstensi .mpg dan Mpeg-4 dengan ekstensi .mp4 yang akan distreamingkan dan dienkripsi.
2. Mendapatkan Key dari masukan user yang akan digunakan untuk proses enkripsi.
3. Melakukan proses MD5 dari Key yang telah didapat yang betujuan untuk memperkuat Key atau kunci.
4. Membaca file video MPEG.
5. Mengecek apakah frame yang sedang dibaca adalah Frame I. Jika benar, maka bit –bit pada macroblock akan di XOR kan dengan bit – bit key dari hasil proses MD5. Kemudian melakukan proses pengiriman paket atau streaming kepada receiver. Jika hasil pengecekan dari Frame I adalah salah maka bit – bit data tersebut langsung dilakukan proses pengiriman data atau streaming.
6. Dilakukan pengecekan lagi yakni apakah sudah sampai akhir dari file atau end of file (EOF). Jika hasil pengecekan tidak maka dilakukan proses pada point 5, jika hasil penyecekan benar maka proses selesai.
3.3 Pengujian dan Analisis
Pengujian dilakukan untuk menjamin dan memastikan bahwa sistem yang telah dirancang memiliki tingkat kesalahan yang kecil. Untuk mengetahui apakah sistem bekerja dengan baik dan sesuai dengan perancangan, maka diperlukan serangkain pengujian. Pengujian yang dilakukan adalah sebagai berikut:
1. Pengujian Enkrispi Video Streaming . 2. Pengujian hasil output.
3. Analisa kegagalan.
3.4 Kesimpulan dan Saran
Kesimpulan diperoleh dari data-data hasil setelah semua analisis dan pengujian aplikasi dilakukan, sehingga diperoleh saran juga guna perbaikan aplikasi pada penelitian selanjutnya
3.5 Rencana Kegiatan
Kegiatan ini direncanakan dikerjakan dalam waktu lima bulan dengan rincian sebagai berikut
No. Jenis Kegiatan
BULAN DAN MINGGU KE:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 Studi Literatur 2 Perancangan Aplikasi 3 Pembuatan Aplikasi 4 Pengujian Aplikasi 5 Penulisan Laporan 6 Seminar Hasil
DAFTAR PUSTAKA
[1] Stallings, William. 2005. “Cryptography and Network Security, 4th edition”. [2] Munir, Rinaldi, M.T., “Diktat Kuliah IF5054 Kriptografi.”, STEI ITB, 2006.
[3] Tessa Ramsky, "Perangkat Lunak Enkripsi Video MPEG-1 dengan Modifikasi Video
encryption algorithm (VEA)", Sekolah Teknik Elektro dan Informatika-Institut
Teknologi Bandung.
[4] Letivina Anggraini, Erina. 2008. “Secure Broadcast Distribution Menggunakan Java
Media Framework (Jmf) Plug-Ins Untuk Pendistribusian Video”.
[5] http://en.pudn.com/ tentang contoh implementasi pengiriman paket data RTP, diakses tanggal 1 Februari 2012.
[6] http://id.wikipedia.org/wiki/MD5, diakses tanggal 1 Februari 2012. [7] http://mpeg.htm/mpeg, diakses tanggal 5 Februari 2012.
[8] http://id.wikipedia.org/wiki/Moving-Picture-Expert-Group, diakses tanggal 5 Februari 2012.
[9] http://en.wikipedia.org/wiki/AForge.NET, diakses tanggal 10 Februari 2012. [10] http://www.csharp-station.com/Tutorial.aspx, diakses tanggal 10 Februari 2012. [11] http://msdn.microsoft.com/en-us/vstudio/hh388566, diakses tanggal 10 Februari 2012 [12] http://www.aforgenet.com/framework/, diakses tanggal 10 Februari 2012