algoritma dan implementasi kriptografi video streaming menggunakan algoritma video encryption...
DESCRIPTION
ALGORITMA DAN IMPLEMENTASI KRIPTOGRAFI VIDEO STREAMING MENGGUNAKAN ALGORITMA VIDEO ENCRYPTION ALGORITHM (VEA)TRANSCRIPT
ALGORITMA DAN IMPLEMENTASI KRIPTOGRAFI VIDEO STREAM-
ING MENGGUNAKAN ALGORITMA VIDEO ENCRYPTION ALGO-
RITHM (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
1
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 streaming video tersebut.
2
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.
3
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
Dalam bab ini berisi kesimpulan dan saran.
4
5
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
6
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.
7
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 adalah sebuah 16 x 16 pixel array pada sebuah frame dan berisi
8
informasi mengenai 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 30000 0000 0000 0000 0000 0001 Video stream start
code / Stream IDStart 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
9
Tabel 2.2 Start Code
Stream ID used for
0xB9 Program end (terminates a program stream)0xBA Pack header0xBB System Header0xBC Program Stream Map0xBD Private stream 10xBE Padding stream0xBF Private stream 20xC0 - 0xDF MPEG-1 or MPEG-2 audio stream0xE0 - 0xEF MPEG-1 or MPEG-2 video stream0xF0 ECM Stream0xF1 EMM Stream
0xF2ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A or ISO/IEC 13818-6_DSMCC_stream
0xF3 ISO/IEC_13522_stream0xF4 ITU-T Rec. H.222.1 type A0xF5 ITU-T Rec. H.222.1 type B0xF6 ITU-T Rec. H.222.1 type C0xF7 ITU-T Rec. H.222.1 type D0xF8 ITU-T Rec. H.222.1 type E0xF9 ancillary_stream0xFA - 0xFE Reserved0xFF 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
10
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
11
tetap dapat terkirim ketika file streaming tersebut dijalankan, file streaming ini akan terus
berjalan dengan lancar.
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 bandwidth yang 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.
FormatContent
TypeQuality
CPU
Requiremen
t
Bandwidth
Requiremen
t
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
Medium Medium Medium
12
Tabel 2.4 Macam - Macam Format Video
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
13
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 Per-
samaan 2.3 harus benar,
D (E(P)) = P (2.3)
Enkripsi DekripsiPlaintext PlaintextCiphertext
Kunci Pribadi Kunci Pribadi
14
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 sebelum-
nya.
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. Tidak-
lah 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 konven-
sioanl adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan
kunci untuk proses dekripsi, oleh karena itulah dinamakan kriptografi simetri. Kea-
manan sistem kriptografi simetri terletak pada kerahasiaan kuncinya. Ada banyak algo-
ritma kriptografi modern yang termasuk ke dalam sistem kriptografi simetri, di-
antaranya adalah DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES,
IDEA, Serpent, AES (Advanced Encryption Standard).
15
Gambar 2.5 Proses Enkripsi/Dekripsi Algoritma Kriptografi Simetris
Algoritma kriptografi (cipher) simetri dapat dikelompokkan menjadi dua kate-
gori (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 penyandian-
nya berorientasi pada satu bit data (bit tunggal), yang dalam hal ini rangkaian bit di-
enkripsikan/didekripsikan bit per bit. Cipher aliran mengenkripsikan plainteks menjadi
chiperteks bit per bit (1 bit setiap kali transformasi). Proses enkripsi menggunakan ci-
pher aliran dapat ditulis dalam Persamaan 2.4 :
ci = piki (2.4)
yang dalam hal ini,
pi : bit plainteks
ki: bit kunci
ci : bit cipherteks
Dan proses dekripsi dapat ditulis dalam Persamaan 2.5 :
pi = cik (2.5)
Contoh sederhana dari penerapan stream cipher pada plaintext.
Mode enkripsi
11001100 Plaintext
(+) 01101100 Keystream
10100000 Ciphertext
16
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 menggu-
nakan 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 den-
gan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma enkripsi meng-
hasilkan blok cipherteks yang – pada kebanyakan sistem kriptografi simetri – beruku-
ran sama dengan blok plainteks.
Dengan blokcipher, blok plainteks yang sama akan dienkripsi menjadi blok ci-
pherteks 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
P = (p1, p2, …,pm) (2.6)
17
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)
Skema enkripsi dan dekripsi dengan cipherblok digambarkan pada Gambar 2.6.
Enkripsi DekripsiPlaintext PlaintextCiphertext
Kunci Umum Kunci Pribadi
18
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 algo-
ritma 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.
19
Gambar 2.7 Proses Enkripsi/Dekripsi Algoritma Kriptografi Asimetris
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.
Diagram alir dari algoritma VEA dapat dilihat di Gambar 2.8.
20
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:
21
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.
Gambar 2.9 Pembuatan message digest dengan algoritma MD5
22
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 men-
galami perubahan drastis. Sifat seperti ini sengaja dibuat agar bila diketahui keluaran, san-
gat sulit atau mustahil untuk mengetahui masukannya.
23
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.
24
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.
25
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
laporan lanjutan jika terdapat paket application-specific RTPC.
26
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
Tabel 3.1 Minimum Spesifikasi Sistem Operasi Windows Xp3
27
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 MinimumProsesor 1.6 GHzMemori 384 MBMonitor Resolusi 1024 x 768 Hard Disk Free 2.2 GBOptical drive DVD-ROMPeralatanInput Mouse dan KeyboardSistem 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–
XOR dengan bit – bit key atau kunci. Namun, key tersebut telah diperkuat yakni dengan
28
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.
29
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.
30
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.
31
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:
Gambar 3.4 Diagram Alir Enkripsi VEA
32
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
33
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 4 2 4 2 3 41 Studi
Literatur 2 Perancang
an Aplikasi
3 Pembuatan Aplikasi
4 Pengujian
Aplikasi
5 Penulisan
Laporan 6 Seminar
Hasil
34
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