BAB I PENDAHULUAN Bab ini menjelaskan latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, dan sistematika penulisan laporan tugas akhir.
I.1 Latar Belakang Teknologi video merupakan salah satu teknologi yang saat ini digunakan dalam berbagai bidang. Teknologi ini telah berkembang dengan pesat dan bahkan kini memegang banyak peranan penting, seperti dalam bidang komunikasi multimedia dan bidang hiburan. Seiring dengan perkembangan teknologi video, maka faktor keamanan data video merupakan salah satu hal penting yang harus diperhatikan. Faktor keamanan yang dimaksud adalah faktor confidentiality dan integrity dari video. Confidentiality berarti hanya orang yang memiliki otorisasi yang dapat melihat isi atau konten dari video. Integrity menjamin data video berasal dari sumber yang sebenarnya dan tidak mengalami modifikasi, baik modifikasi yang dilakukan secara sengaja oleh pihak lain yang tidak berhak maupun modifikasi yang dilakukan secara tidak sengaja oleh pihak yang berhak. Salah satu solusi untuk meningkatkan faktor confidentiality dari video adalah dengan melakukan proses enkripsi. Proses enkripsi video dapat dilakukan dengan menggunakan metode complete encryption algorithm dan mengimplementasikan konsep digital envelope. Konsep digital envelope memadukan kelebihankelebihan yang terdapat pada symmetric dan asymmetric key cryptography untuk meningkatkan faktor confidentiality. Symmetric key cryptography membutuhkan waktu lebih cepat dibandingkan dengan asymmetric key cryptography dalam melakukan proses enkripsi, namun
1
memiliki kekurangan dalam masalah key distribution, yaitu kurang amannya distribusi kunci pada jaringan dengan user yang banyak. Sedangkan asymmetric key cryptography dapat mengatasi masalah key distribution dengan lebih baik. Konsep digital envelope dapat diterapkan dengan menggunakan algoritma RC5 yang merupakan bagian dari symmetric key cryptography dan Elliptic Curve Cryptography yang merupakan bagian dari asymmetric key cryptography. Sedangkan untuk meningkatkan faktor integrity dari video, salah satu solusinya yaitu dengan melakukan penambahan digital signature menggunakan algoritma Elliptic Curve Digital Signature Algorithm. Penambahan digital signature ini akan memastikan video berasal dari pihak pemberi digital signature dan tidak mengalami modifikasi selama proses transmisi.
I.2 Rumusan Masalah Berdasarkan pertimbangan faktor confidentiality dan integrity yang harus dimiliki sebuah video, maka rumusan masalah yang diajukan dalam tugas akhir ini adalah bagaimana meningkatkan faktor confidentiality dan integrity dari sebuah video.
I.3 Tujuan Tujuan dari tugas akhir ini adalah mengembangkan sebuah perangkat lunak yang mengimplementasikan algoritma enkripsi untuk dapat meningkatkan: 1. Confidentiality dari sebuah video digital dengan menggunakan konsep digital envelope. 2. Integrity dari sebuah video digital dengan menggunakan konsep digital signature. Tugas akhir ini juga akan menunjukkan bahwa perangkat lunak yang dikembangkan telah meningkatkan faktor confidentiality dan integrity dari video.
2
I.4 Batasan Masalah Selama pengerjaan hingga pada akhir tugas akhir ini, diharapkan tetap berorientasi pada hal berikut: 1. Konsep digital envelope diimplementasikan menggunakan algoritma Elliptic Curve Diffie-Hellman dan RC5. 2. Konsep digital signature diimplementasikan dengan algoritma Elliptic Curve Digital Signature Algorithm yang menggunakan algoritma SHA1 untuk proses hashing. 3. Aplikasi perangkat lunak yang dikembangkan dapat mendukung semua format video. 4. Aplikasi perangkat lunak yang dikembangkan tidak mendukung proses streaming video.
I.5 Metodologi Metodologi penyelesaian tugas akhir ini diawali dengan melakukan studi literatur guna memberi pemahaman mendalam mengenai video dan kriptografi. Tugas akhir ini diselesaikan dengan berdasarkan pada metodologi berikut: 1. Studi literatur mengenai video untuk memahami dasar-dasar video. 2. Studi literatur mengenai kriptografi, khususnya mengenai konsep digital envelope yang menggunakan algoritma Elliptic Curve Diffie-Hellman dan RC5. 3. Studi literatur mengenai digital signature yang menggunakan algoritma Elliptic Curve Digital Signature Algorithm. 4. Analisis sistem perangkat lunak yang akan dikembangkan. 5. Perancangan
perangkat
lunak
yang
mengimplementasikan
algoritma
kriptografi. 6. Implementasi rancangan perangkat lunak yang mengimplementasikan algoritma kriptografi untuk video.
3
I.6 Sistematika Penulisan Laporan tugas akhir ini disusun berdasarkan sistematika penulisan sebagai berikut: BAB I
Bab ini menguraikan latar belakang masalah, rumusan masalah, tujuan penyusunan, batasan masalah, metodologi dan sistematika penulisan laporan tugas akhir.
BAB II
Bab ini menjelaskan konsep dasar video, enkripsi video, konsep digital envelope dan digital signature.
BAB III
Bab ini menjelaskan analisis dan perancangan perangkat lunak yang akan dikembangkan.
BAB IV
Bab ini meliputi implementasi dan pengujian perangkat lunak yang dikembangkan.
BAB V
Bab ini berisi tentang kesimpulan dan saran yang diperoleh dari pelaksanaan tugas akhir ini.
4
BAB II DASAR TEORI Bab ini menjelaskan dasar teori yang digunakan dalam pengembangan perangkat lunak, dasar teori tersebut terdiri dari konsep dasar video, konsep digital envelope dan konsep digital signature. Pada bagian konsep dasar video dibahas tipe-tipe picture yang terdapat dalam sebuah video, video coding standard dan enkripsi video. Pada bagian digital envelope dibahas konsep digital envelope yang menggunakan algoritma Elliptic Curve Diffie-Hellman dan RC5. Pada bagian digital signature dibahas konsep digital signature yang menggunakan algoritma Elliptic Curve Digital Signature Algorithm.
II.1 Konsep Dasar Video Suatu image digital direpresentasikan dengan sebuah matriks dua dimensi yang masing-masing elemennya merepresentasikan nilai intensitas. Jika I adalah sebuah matriks, I(x,y) adalah nilai intensitas yang sesuai pada posisi baris x dan kolom y pada matriks tersebut. Elemen-elemen dari matriks tersebut juga disebut picture elements, atau sering dikenal sebagai piksel (pixel) [YON02]. Proses video coding yang dilakukan akan menghasilkan beberapa macam tipe gambar (picture) dalam sebuah video digital. Sebuah video digital tersusun atas sekumpulan group of pictures (GOP). Group of pictures sendiri merupakan kumpulan dari beberapa picture/frame. Setiap picture terbagi atas sekumpulan macroblock yang disebut slice. Sebuah slice dapat memiliki ukuran yang berbedabeda dalam sebuah picture. Satu slice terbagi atas beberapa macroblock yang berukuran 16 x 16 pixel. Macroblock dibagi lagi menjadi block-block berukuran 8 x 8 pixel.
5
Gambar II.1 Video structure
II.1.1 Tipe Picture Group of pictures terdiri dari sekumpulan picture. Terdapat empat macam tipe picture: I picture, P picture, B picture dan D picture. Susunan picture dalam group of pictures selalu dimulai dengan I picture, kemudian dilanjutkan dengan susunan P dan B picture. Panjang dari group of pictures didefinisikan sebagai jarak antara I picture. Tipe I picture merupakan picture yang dikodekan tanpa referensi ke picture sebelumnya. Tipe picture ini menyediakan access point untuk proses decoding. Tipe P picture atau predictively coded picture merupakan picture yang dikodekan dengan referensi ke I picture atau P picture sebelumnya. Tipe picture ini digunakan sebagai referensi untuk coding picture-picture sesudahnya.
6
Tipe B picture atau bidirectionally coded picture merupakan picture yang dikodekan dengan referensi ke picture-picture sebelumnya, sesudahnya atau sebelum dan sesudahnya. Tipe terakhir, yaitu D picture memiliki kualitas gambar yang buruk dan biasanya hanya digunakan untuk fast forward. D picture bukan merupakan bagian dari GOP [GHA03]. II.1.2 Video Coding Standard Terdapat beberapa standar video coding yang dikembangkan oleh beberapa organisasi internasional. International Telecommunication Union (ITU-T) yang berbasis di Geneva, Switzerland merupakan organisasi yang mengembangkan standar video coding untuk bidang telekomunikasi. Selain ITU-T, terdapat pula organisasi lain yaitu Motion Picture Experts Group (MPEG), organisasi ini mengembangkan standar untuk video dan audio coding. Berikut adalah beberapa standar video coding yang dikembangkan oleh International Telecommunication Union (ITU-T): 1. H.261 Standar video coding ini diresmikan pada tahun 1990. Pada awalnya didesain untuk transmisi di atas ISDN. Algoritma video coding ini didesain untuk dapat beroperasi pada bitrate antara 40 kbit/s sampai 2 Mbit/s. Standar ini mendukung dua ukuran video frame: CIF (352 x 288 luma dengan 176 x 144 chroma) dan QCIF (176 x 144 luma dengan 88 x 72 chroma). 2. H.262 Standar video coding H.262 serupa dengan standar video ISO/IEC MPEG-2. Standar ini dikembangkan secara bersamaan oleh ITU-T dan ISO/IEC. 3. H.263 H.263 merupakan standar yang didesain ITU-T pada tahun 1995/1996 sebagai format kompresi dengan bitrate rendah untuk videoconference. H.263 dikembangkan sebagai hasil perkembangan evolusi dari H.261, MPEG-1 dan MPEG-2. Versi pertama standar ini diselesaikan pada tahun 1995 dan merupakan pengganti yang cocok untuk H.261. Kemudian dikembangkan lagi
7
pada proyek yang dikenal dengan nama H.263v2 (juga dikenal sebagai H.263+ atau H.263 1998) dan H.263v3 (juga dikenal sebagai H.263++ atau H.263 2000). 4. H.264 Standar video coding berikutnya yang dikembangkan adalah H.264. H.264 menyediakan perkembangan yang signifikan melebihi H.263. Sebagian besar produk videoconferencing sekarang mengikutsertakan standar video H.264, H.263 dan H.261. H.264 dikenal juga sebagai MPEG-4 Part 10 atau MPEG-4 AVC (Advanced Video Coding). Sedangkan berikut ini adalah standar video coding yang dikembangkan oleh Motion Picture Experts Group (MPEG) [CHI94]: 1. MPEG-1 MPEG-1 merupakan standar untuk audio dan video coding dengan tipe kompresi lossy. Standar ini didesain untuk kompresi video dengan kualitas VHS dan CD audio. Saat ini MPEG-1 telah menjadi standar lossy audio/video coding paling kompatibel di dunia dan banyak digunakan dalam produkproduk dan teknologi yang ada. 2. MPEG-2 MPEG-2 digunakan secara luas sebagai format TV digital. Standar video coding ini juga digunakan sebagai format film atau program lain yang didistribusikan melalui DVD. 3. MPEG-4 MPEG-4
merupakan
kumpulan
metoda-metoda
yang
mendefinisikan
kompresi data audio dan visual (AV) digital. Penggunaan standar MPEG-4 ini termasuk kompresi data AV untuk web dan distribusi CD, suara (telephone, videophone) dan aplikasi TV broadcast. 4. MPEG-7 MPEG-7 adalah standar deskripsi content multimedia. Deskripsi ini akan diasosiasikan dengan content-nya untuk membuat pencarian menjadi cepat dan efisien. MPEG-7 disebut juga Multimedia Content Description Interface.
8
Standar ini tidak berurusan dengan encoding dari gambar bergerak dan audio seperti MPEG-1, MPEG-2 dan MPEG-4. II.1.3 Enkripsi Video Salah satu solusi untuk meningkatkan faktor keamanan, dalam hal ini faktor confidentiality dari video adalah dengan melakukan proses enkripsi video. Berdasarkan proses enkripsi yang dilakukan, maka enkripsi video dapat dikelompokkan menjadi tiga bagian [WAN07]: 1. Complete encryption algorithm Konsep complete encryption algorithm sangat berfokus pada peningkatan faktor confidentiality dari video dan kurang berfokus pada faktor efisiensi proses komputasi. Algoritma enkripsi ini akan mengenkripsi keseluruhan frame dari awal hingga akhir video, sehingga menghasilkan tingkat confidentiality paling tinggi. Namun proses enkripsi yang dilakukan memakan waktu paling lama bila dibandingkan dengan dua konsep algoritma enkripsi video yang lain. 2. Compression encryption combined algorithm Proses enkripsi yang dilakukan dikombinasikan dengan proses kompresi video. Dengan demikian, proses komputasi yang dilakukan lebih sedikit, namun membutuhkan tabel tambahan untuk menyimpan hasil Huffman coding yang tentunya memakan tempat lebih banyak. Tingkat confidentiality yang dihasilkan bergantung pada struktur pohon Huffman atau algoritma kompresi yang digunakan. 3. Selective encryption algorithm Konsep selective encryption algorithm meningkatkan faktor confidentiality dari video namun lebih berfokus pada efisiensi proses komputasi. Algoritma yang menerapkan konsep selective encryption algorithm akan melakukan enkripsi video hanya pada frame-frame tertentu saja, sehingga meminimalisasi
9
proses komputasi. Hal tersebut meningkatkan efisiensi dari proses enkripsi yang dilakukan, namun tingkat confidentiality yang dihasilkan lebih rendah bila dibandingkan complete encryption algorithm.
II.2 Digital Envelope Konsep digital envelope memanfaatkan kelebihan-kelebihan yang terdapat dalam symmetric key cryptography dan asymmetric key cryptography. Dengan menggunakan konsep digital envelope, plaintext akan dienkripsi dengan menggunakan symmetric key cryptography, sementara kunci yang digunakan untuk melakukan enkripsi plaintext akan dienskripsi dengan menggunakan asymmetric key cryptography [PIN07].
Gambar II.2 Digital envelope
Dengan demikian proses key distribution sudah tidak menjadi masalah lagi karena dilakukan dengan menggunakan asymmetric key cryptography, pengirim pesan mengenkripsi kunci rahasia yang digunakan untuk mengenkripsi pesan dengan menggunakan public key penerima pesan. Sehingga hanya pengirim dan penerima pesan yang mengetahui kunci rahasia yang dipakai dalam melakukan enkripsi dan dekripsi pesan. Selain itu, proses enkripsi juga tidak memakan waktu lama karena dilakukan dengan menggunakan symmetric key cryptography.
10
Dalam tugas akhir ini, konsep digital envelope diterapkan dengan menggunakan algoritma RC5 (Rivest Cipher) yang merupakan salah satu algoritma symmetric key cryptography. Sementara proses key distribution dilakukan dengan menggunakan Elliptic Curve Diffie-Hellman yang merupakan bagian dari Elliptic Curve Cryptography. II.2.1 Protokol Pertukaran Kunci Algoritma pertukaran kunci Diffie-Hellman yang pertama kali diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976 merupakan cryptosystem pertama yang memanfaatkan konsep asymmetric key cryptography [PAL06]. Algoritma ini merupakan salah satu algoritma kriptografi yang berbasiskan pada kesulitan menghitung logaritma diskrit dalan finite field. Tidak seperti algoritma enkripsi yang pada umumnya mengenkripsi suatu data, algoritma pertukaran kunci ini memungkinkan dua user atau lebih untuk bertukar public key pada jaringan yang tidak aman dan kemudian menghasilkan shared secret key yang sama pada masing-masing pihak. Shared secret key tersebut yang kemudian dapat digunakan sebagai symmetric key untuk melakukan proses enkripsi data menggunakan symmetric key algorithm. II.2.1.1 Pertukaran Kunci Diffie-Hellman Penjelasan protokol pertukaran kunci ini dapat diilustrasikan antara dua orang, misalkan saja A dan B, yang keduanya sepakat mengenai bilangan prima yang besar misalkan n dan g di mana g merupakan modulo n. Selanjutnya akan terdapat dua buah integer yang tidak dirahasiakan atau merupakan public key dan dapat didistribusikan dalam saluran bebas. Proses berikutnya dijelaskan dalam tahapantahapan di bawah ini: 1. A memilih secara acak sebuah bilangan integer x yang besar, menghitung X = gx mod n, dan mengirimkan X pada B. 2. B memilih secara acak sebuah bilangan integer y yang besar, menghitung Y = gy mod n, dan mengirimkan Y pada A.
11
3. A menghitung nilai k1 = Yx mod n 4. B menghitung nilai k2 = Xy mod n Setelah empat langkah di atas selesai dilakukan, maka kedua nilai k1 dan k2 adalah sebuah shared secret yang sama untuk gxy mod n, sehingga k adalah kunci rahasia A dan B yang dihitung secara terpisah. II.2.1.2 Pertukaran Kunci Diffie-Hellman pada Elliptic Curve Pertukaran kunci Diffie-Hellman juga dapat diterapkan pada kurva elips dengan menggunakan titik-titik pada kurva sebagai public key dan shared secret key. Misal E adalah sebuah kurva elips dan P = (x, y) merupakan sebuah titik pada kurva E, maka proses pertukaran kunci berdasarkan Elliptic Curve Diffie-Hellman adalah sebagai berikut: 1. A memilih kunci rahasia a, misalkan a = 2 dan menghitung public key-nya, yaitu: P x a. Public key ini kemudian dikirimkan ke B. 2. B memilih kunci rahasia b, misalkan b = 3 dan menghitung public key-nya, yaitu: P x b. Public key ini kemudian dikirimkan ke A. 3. A menghitung nilai shared secret key dari public key yang telah diterimanya, yaitu: SA = (P x b) x a. 4. B menghitung nilai shared secret key dari public key yang telah diterimanya, yaitu: SB = (P x a) x b. Setelah keempat langkah tersebut selesai dilakukan, maka nilai SA dan SB yang dihasilkan merupakan sebuah shared secret key yang bernilai sama pada pihak A dan B. II.2.2 Rivest Cipher (RC5) RC5 dikembangkan oleh Ron Rivest dan merupakan algoritma symmetric key cryptography
yang
menerapkan
konsep
block
cipher. Algoritma
RC5
dikategorikan cukup cepat dan tidak membutuhkan terlalu banyak memori karena hanya menggunakan operasi-operasi komputasi dasar, seperti penjumlahan, XOR dan shift. Pada sebuah jurnal yang berjudul “A Performance Evaluation of
12
Intrusiontolerant Routing in Wireless Sensor Networks”, RC5 dilaporkan memiliki performansi yang lebih cepat bila dibandingkan dengan Rinjdael [VIT06]. RC5 dapat menerima input berupa variabel ukuran block, variabel ukuran kunci rahasia yang akan digunakan dan variabel jumlah round. Berbagai input variabel tersebut menghasilkan fleksibilitas tingkat confidentiality dan efisiensi yang diinginkan. Tabel II.1 Tabel parameter RC5 Parameter Ukuran block Ukuran kunci rahasia (dalam bit) Jumlah round
Nilai yang diijinkan 16, 32, 64 0-2040 0-255
Sebelum melakukan enkripsi, algoritma RC5 akan melakukan proses key expansion yang memperluas atau mengembangkan kunci rahasia sehingga memenuhi sub key yang disebut S. Sub key S berupa array yang memiliki panjang 2 * (jumlah round + 1). Dalam proses key expansion digunakan dua buah konstanta, yaitu P dan Q. Nilai P adalah B7E15163 dan nilai Q adalah 9E3779B9. Kedua nilai tersebut didefinisikan dalam bentuk heksadesimal. Proses key expansion terdiri dari tiga buah langkah [RIV95] : 1. Mengkonversi kunci rahasia dari byte menjadi word. 2. Menginisialisasi sub key S. Nilai sub key S[0] pertama kali didefinisikan dengan nilai konstanta P. Nilai S selanjutnya (S[1], S[2], …) dihitung berdasarkan nilai S sebelumnya dan nilai konstanta Q yang kemudian dikalkulasi dengan operasi modulo 232. Proses inisialisasi array S ini dilakukan sebanyak 2 * (jumlah round + 1) - 1. 3. Memadukan kunci rahasia. Pada proses ini sub key S (S[0], S[1], …) dipadukan dengan kunci rahasia (L) yang berupa array (L[0], L[1], …). Proses ini akan dilakukan sebanyak tiga
13
kali, namun karena ukuran S dan L yang berbeda, bisa saja proses ini dilakukan lebih dari tiga kali. Setelah melakukan proses key expansion, algoritma RC5 akan melakukan proses enkripsi. Langkah dari proses enkripsi yang dilakukan adalah sebagai berikut: 1. Membagi plaintext input menjadi dua block dengan ukuran yang sama (A dan B). 2. Tambahkan sub key pertama (S[0]) dengan A, yang kemudian menghasilkan C. 3. Tambahkan sub key selanjutnya (S[1]) dengan B, yang kemudian menghasilkan D. 4. Lakukan XOR C dan D, yang menghasilkan E. 5. Shift atau geser E ke kiri sebanyak D. 6. Tambahkan E yang sudah di-shift dengan sub key selanjutnya (S[2]) untuk menghasilkan F. 7. Lakukan XOR D dan F, yang menghasilkan G. 8. Shift atau geser G ke kiri sebanyak F. 9. Tambahkan G yang sudah di-shift dengan sub key selanjutnya (S[3]) untuk menghasilkan H. 10. Tambahkan counter (i) dan cek apakah i masih lebih kecil dari jumlah parameter round yang diinput. Sebagai catatan, implementasi algoritma RC5 pada perangkat lunak yang dikembangkan akan menggunakan kunci yang didapat dari proses pertukaran kunci menggunakan algoritma Elliptic Curve Diffie-Hellman.
14
Berikut flowchart dari proses enkripsi yang dilakukan algoritma RC5 [KAH03]:
Bagi plaintext menjadi dua block (A dan B) dengan ukuran yang sama
A + S[0] = C B + S[1] = D i=1
C XOR D = E
D XOR F = G
shift E sebanyak D
shift G sebanyak F
E + S[2i] = F
G + S[2i + 1] = H
increment i
C=H D= F
Apakah i > r ?
stop
Gambar II.3 Skema proses enkripsi algoritma RC5
II.3 Digital Signature Digital signature merupakan salah satu implementasi kriptografi untuk meningkatkan faktor integrity dari suatu data. Digital signature berguna untuk memastikan bahwa suatu pesan yang sudah memiliki digital signature merupakan pesan yang berasal dari pihak penanda tangan dan tidak mengalami modifikasi selama proses transmisi. Bila pesan mengalami perubahan baik secara sengaja
15
maupun tidak sengaja, maka pihak penerima pesan akan dengan segera mengetahuinya [PIN07].
Gambar II.4 Digital signature
Untuk menciptakan sebuah digital signature, suatu pesan di-hash terlebih dahulu agar menghasilkan message digest. Message digest dapat dikatakan sebagai fingerprint dari suatu pesan. Kemudian message digest yang dihasilkan dienkripsi menggunakan private key dari pengirim pesan sehingga hanya public key yang merupakan pasangan dari private key tersebut yang dapat digunakan untuk melakukan dekripsi. Hal tersebut menjamin bahwa suatu pesan benar-benar dikirm oleh penanda tangan pesan. Digital signature kemudian digabungkan dengan pesan yang akan ditransmisikan.
Gambar II.5 Proses verifikasi digital signature
16
Setelah pesan diterima, penerima pesan memisahkan digital signature dari pesan yang diterima, kemudian melakukan proses hash yang sama untuk menghasilkan message digest dari pesan tersebut. Digital signature yang diterima kemudian didekripsi menggunakan public key pengirim pesan. Hasil dari proses dekripsi tersebut adalah message digest dari proses hash yang dilakukan oleh pengirim pesan. Penerima pesan kini cukup membandingkan message digest yang diperolehnya dari proses hash pesan dengan message digest yang diperolehnya dari hasil dekripsi digital signature. Bila kedua message digest tersebut sama, maka dapat dipastikan pesan tidak mengalami modifikasi selama proses transmisi. II.3.1 Elliptic Curve Digital Signature Algorithm (ECDSA) Eliliptic Curve Digital Signature Algorithm (ECDSA) adalah varian dari Digital Signature Algorithm (DSA) yang dioperasikan pada kurva elips. ECDSA memiliki tingkat keamanan yang lebih tiggi bila dibandingkan dengan DSA. Sebagai perbandingan, level keamanan yang dihasilkan oleh DSA dengan public key berukuran 1024 bit sebanding dengan level keamanan yang dihasilkan oleh ECDSA dengan public key hanya 160 bit. Untuk mengirimkan pesan yang telah dibubuhi digital signature dari pengirim (dalam contoh ini A) ke penerima (dalam contoh ini B) dan memastikan bahwa digital signature tersebut berasal dari A, kedua belah pihak harus terlebih setuju pada Elliptic Curve domain parameters, di mana Elliptic Curve domain parameters merupakan parameter-parameter kurva elips yang digunakan dalam proses pembuatan dan verifikasi digital signature. Pihak A memiliki key pair yang terdiri dari private key dA (bilangan integer yang nilainya kurang dari n) dan public key QA = dA * G (G adalah titik generator). Sebelum melakukan signature generation, algoritma ECDSA akan mengkalkulasi message digest dari suatu pesan dengan menggunakan algoritma hash Secure Hash Algorithm-1 (SHA1).
17
Algoritma Secure Hash Algorithm (SHA) dikembangkan oleh National Institute of Standards and Technology (NIST) bersama dengan US National Security Agency (NSA). Pada tahun 1993, SHA dipublikasikan sebagai Federal Information Processing Standard (FIPS PUB 180). Kemudian pada tahun 1995 direvisi menjadi FIPS PUB 180-1 dan namanya diganti menjadi SHA-1. SHA merupakan algoritma hash yang dibuat berdasarkan algoritma MD4. SHA menerima input dengan panjang kurang dari 264 bit. Output dari SHA berupa message digest dengan panjang 160 bit. Kata ‘secure’ dalam Secure Hash Algorithm didasarkan pada dua hal, yaitu: 1. SHA didesain agar seseorang tidak dapat mendapatkan pesan sebenarnya bila diberikan message digest dari pesan tersebut. 2. SHA didesain agar tidak ditemukan dua pesan yang menghasilkan message digest yang sama. Proses signature generation untuk menandai pesan m oleh pengirim (A) menggunakan private key A (dA) adalah sebagai berikut: 1. Kalkulasi e = hash (m), di mana hash adalah fungsi hash kriptografi seperti SHA-1 2. Pilih sebuah bilangan integer k dari [1, n-1] 3. Hitung r = x1 (mod n), di mana (x1, y1) = k * G. Jika r = 0, kembali ke langkah nomor 2 4. Hitung s = k -1 (e + rdA)(mod n). Jika s = 0, kembali ke langkah nomor 2 5. Nilai signature pair yang didapat adalah (r, s). Digital signature dalam notasi (r, s) selanjutnya akan dikirimkan ke B. Setelah diterima oleh B, maka proses verifikasi signature dapat dilakukan bila B memiliki public key A (QA). Proses verifikasi yang dilakukan adalah sebagai berikut:
18
1. Verifikasi bahwa r dan s merupakan bilangan integer dalam range [1, n-1]. Bila r atau s tidak berada dalam range tersebut, maka dapat dipastikan signature tidak valid. 2. Kalkulasi e = hash (m), di mana hash adalah fungsi hash kriptografi yang sama dengan yang digunakan dalam proses signature generation. 3. Hitung w = s -1 (mod n) 4. Hitung u1 = ew (mod n) dan u2 = rw (mod n) 5. Hitung (x1, y1) = u1G + u2QA 6. Bila nilai x1 = r (mod n), maka signature dinyatakan valid. Setelah enam langkah tersebut dilakukan oleh B, maka B dapat memastikan apakah digital signature yang diterimanya merupakan digital signature yang valid atau tidak.
19
BAB III ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi tentang analisis dan perancangan dari sistem yang akan dikembangkan. Pembahasan meliputi analisis dari complete encryption algorithm, selective encryption algorithm dan compression encryption combined algorithm. Pada bagian perancangan dijelaskan rancangan sistem yang dikembangkan dalam tugas akhir ini. Pembahasan meliputi rancangan layer yang akan diterapkan dan rancangan cara kerja perangkat lunak yang dikembangkan.
III.1 Analisis Sistem Analisis
sistem
yang
dikembangkan,
yakni
aplikasi
kriptografi
yang
mengimplementasikan konsep digital envelope dan digital signature untuk meningkatkan faktor confidentiality dan integrity dari video. Untuk meningkatkan faktor confidentiality dilakukan proses enkripsi video. Seperti telah dijelaskan pada bab II, terdapat beberapa metoda untuk melakukan enkripsi data video, yaitu: complete encryption algorithm, selective encryption algorithm dan compression encryption combined algorithm. Complete encryption algorithm akan mengenkripsi keseluruhan frame video dari awal hingga akhir. Algoritma ini sedikit lambat dalam melakukan proses enkripsi, namun demikian memiliki tingkat confidentiality yang paling tinggi. Di lain pihak, selective encryption algorithm hanya mengenkripsi I picture dari video sehingga cukup cepat dalam melakukan proses enkripsi, namun tingkat confidentiality yang dihasilkan algoritma ini jelas berada di bawah complete encryption algorithm.
20
Secara teori, selective encryption algorithm memiliki waktu komputasi yang lebih cepat dalam melakukan proses enkripsi dibandingkan dengan complete encryption algorithm. Hal tersebut disebabkan karena selective encryption algorithm hanya akan mengenkripsi I pictures dari sebuah video. Namun, jika data video hanya tersusun atas I pictures saja, maka selective encryption algorithm dapat secara tidak langsung berubah menjadi complete encryption algorithm. Hal ini membuat complete encryption algorithm menjadi pilihan yang lebih baik bila dibandingkan dengan selective encryption algorithm [QIA96]. Selain complete encryption algorithm dan selective encryption algorithm, terdapat pula compression encryption combined algorithm. Metoda enkripsi compression encryption combined algorithm dikatakan tidak fleksibel dan memiliki dua masalah fatal, yaitu: peningkatan ukuran image sebesar 25% sampai 60% dan vulnerable-nya algoritma ini terhadap known plaintext attack [QIA96]. Berdasarkan pertimbangan faktor-faktor di atas, maka complete encryption algorithm diharapkan mampu menjawab kebutuhan faktor confidentiality dari sebuah video meski complete encryption algorithm memiliki waktu komputasi yang lebih lama dibandingkan selective encryption algorithm. Complete encryption algorithm yang diterapkan pada enkripsi simetris masih memiliki masalah dalam hal distribusi kunci, khususnya dalam jaringan dengan jumlah user yang banyak. Sehingga, dibutuhkan algoritma pertukaran kunci untuk melakukan proses pertukaran public key yang akan menghasilkan kunci simetris. Algoritma pertukaran kunci ini memungkinkan dua atau lebih user bertukar kunci dalam jaringan yang tidak aman. Untuk meningkatkan faktor integrity, perlu dilakukan penambahan digital signature. Penambahan digital signature ini akan menjamin video tidak mengalami modifikasi selama proses transmisi, juga menjamin bahwa video tersebut berasal dari pihak pemberi digital signature. Setelah perangkat lunak
21
mengenkripsi keseluruhan berkas video, barulah perangkat lunak akan menambahkan digital signature pada berkas video tersebut.
III.2 Perancangan Sistem Secara umum, perangkat lunak yang dikembangkan terdiri dari empat buah layer: 1. Layer video Pada layer pertama ini, data video dapat dikatakan merupakan plain video dan dapat dimainkan oleh aplikasi video player yang bersesuaian. 2. Layer enkripsi/dekripsi Pada layer ini terjadi proses enkripsi ataupun dekripsi video menggunakan algoritma Elliptic Curve Diffie-Hellman dan RC5. 3. Layer signature Pada layer ini dilakukan penambahan ataupun pemisahan digital signature dengan berkas cipher video atau berkas video yang telah dienkripsi dengan menggunakan algoritma Elliptic Curve Digital Signature Algorithm yang menerapkan algoritma SHA1 untuk proses hashing. 4. Layer transport Pada layer ini, berkas video yang telah dienkripsi dan dibubuhi digital signature siap untuk ditransmisikan.
22
Sender
Receiver
video
video
encryption
decryption
Elliptic Curve Diffie-Hellman and RC5
append signature
separate signature
Elliptic Curve Digital Signature Algorithm with SHA 1
transport
transport
Gambar III.1 Layer dari aplikasi yang akan dikembangkan
Untuk lebih memahami perancangan layer yang telah dibuat, maka dimisalkan terdapat dua user yang saling berinteraksi pada jaringan peer to peer. Dalam contoh ini dua user tersebut adalah sender dan receiver. Pihak sender atau pengirim data video akan memulai prosesnya dari layer teratas, yaitu layer video. Video kemudian akan dienkripsi dan dibubuhi digital signature sebelum akhirnya ditransmisikan ke receiver. Pihak receiver akan menerima data video, kemudian memisahkan digital signature dari file video yang diterimanya, hingga akhirnya file video dapat dimainkan kembali dengan video player yang bersesuaian. Baik sender maupun receiver memiliki jumlah layer yang sama, namun proses pada layer enkripsi/dekripsi dan layer signature memiliki perbedaan. Pada sisi sender, akan dilakukan proses enkripsi dan penambahan digital signature.
23
Sedangkan pada sisi receiver akan dilakukan proses dekripsi dan pemisahan digital signature untuk memverifikasi apakah digital signature yang diterima valid. III.2.1 Use Case Diagram Berikut use case diagram dari perangkat lunak yang dikembangkan:
Gambar III.2 Use case diagram
•
Pembuatan dan pertukaran key Pada use case ini akan berisi fungsi atau prosedur yang berkaitan dengan proses pembuatan key pair, pertukaran public key hingga proses pembuatan shared secret key.
24
•
Mengenkripsi video Pada use case ini akan berisi fungsi atau prosedur yang berkaitan dengan proses enkripsi file video.
•
Membuat digital signature Pada use case ini akan berisi fungsi atau prosedur yang berkaitan dengan proses pembuatan digital signature.
•
Memverifikasi digital signature Pada use case ini akan berisi fungsi atau prosedur yang berkaitan dengan proses verifikasi digital signature.
•
Mendekripsi video Pada use case ini akan berisi fungsi atau prosedur yang berkaitan dengan proses dekripsi file video.
Bila use case diagram pada gambar III.2 diimplementasikan dengan dua user, maka akan terdapat pihak sender dan pihak receiver. Kedua pihak akan berinteraksi pada jaringan peer to peer. Pihak sender akan bertindak sebagai pihak pengirim video, sedangkan receiver akan bertindak sebagai pihak penerima video. Pada proses tersebut, pihak sender hanya akan menggunakan use case pembuatan dan pertukaran key, mengenkripsi video dan membuat digital signature. Sementara pihak receiver akan menggunakan use case pembuatan dan pertukaran key, memverifikasi digital signature dan mendekripsi video. III.2.2 Activity Diagram Sesuai dengan use case diagram pada gambar III.2 yang diimplementasikan dengan dua user (sender dan receiver), maka berikut adalah activity diagram dari perangkat lunak yang dikembangkan:
25
26
Gambar III.3 Activity diagram
Sebelum dapat melakukan proses enkripsi, sender dan receiver harus membuat key pair, yaitu sepasang public key dan private key. Setelah itu, sender dan receiver menukar public key mereka berdasarkan protokol ECDH. Dari private key dan public key yang telah ditukar, masing-masing pihak dapat membuat shared secret key, yaitu sebuah symmetric secret key yang sama di kedua belah pihak. Symmetric secret key yang didapat kemudian dipakai oleh sender yang dianggap sebagai pihak pengirim untuk melakukan enkripsi video menggunakan algoritma kunci simetris RC5. Proses enkripsi pada video ini dilakukan menggunakan metode complete encryption algorithm, di mana enkripsi akan dilakukan pada keseluruhan frame dari awal hinga akhir video. Hal tersebut dilakukan untuk menjamin confidentiality dari video. Setelah proses enkripsi pada video selesai dilakukan, maka akan terbentuk cipher video. Cipher video ini kemudian di-hash menggunakan fungsi hash SHA-1 untuk mendapatkan message digest-nya. Message digest yang didapat kemudian dienkripsi menggunakan private key untuk menjamin bahwa video tersebut tidak mengalami modifikasi. Message digest yang telah dienkripsi ini disebut sebagai digital signature. Cipher video dan digital signature yang dihasilkan kemudian dikirimkan ke receiver. Pihak receiver yang dianggap sebagai penerima kemudian akan melakukan proses hash pada cipher video menggunakan fungsi hash yang sama dengan fungsi hash yang digunakan oleh sender. Proses hash ini akan menghasilkan sebuah message digest. Digital signature yang didapat akan didekripsi menggunakan public key receiver, sehingga didapat sebuah message digest. Receiver kemudian membandingkan
27
message digest yang didapat dari proses hash cipher video dengan message digest yang didapat dari proses dekripsi digital signature. Jika kedua message digest tersebut bernilai sama, maka dapat dipastikan cipher video tersebut belum mengalami modifikasi. Bila cipher video belum mengalami modifikasi, maka aplikasi yang akan dikembangkan akan melakukan proses dekripsi untuk mendapatkan data video semula.
28
BAB IV IMPLEMENTASI DAN PENGUJIAN Bab ini membahas lingkungan pengembangan perangkat lunak, meliputi perangkat keras dan perangkat lunak yang digunakan, juga implementasi classclass yang dikembangkan. Pada bagian pengujian akan memperlihatkan hasil pengujian perangkat lunak yang didasarkan pada tiga faktor: confidentiality dan integrity, waktu pemrosesan dan perbandingan ukuran berkas yang dihasilkan.
IV.1 Lingkungan Pengembangan Dalam lingkungan pengembangan, dijelaskan tentang perangkat-perangkat yang digunakan dalam pengembangan perangkat lunak kriptografi video. Berikut spesifikasi yang digunakan: IV.1.1 Perangkat Keras Spesifikasi komputer yang digunakan dalam pengembangan perangkat lunak kriptografi video ini adalah sebagai berikut: 1. PC dengan processor Intel® Pentium® 4 CPU 2.40GHz 2. Hardisk 40 GB 3. RAM 512 MB 4. Monitor, keyboard dan mouse. IV.1.2 Perangkat Lunak Spesifikasi perangkat lunak yang digunakan antara lain: 1. Sistem operasi Microsoft Windows XP service pack 2 2. Microsoft Visual Studio C#.NET 2005.
29
IV.2 Implementasi Aplikasi Berikut pemaparan implementasi class-class dari perangkat lunak yang dikembangkan: Tabel IV.1 Implementasi class-class dari perangkat lunak yang dikembangkan Class FormAwal
FormAsReceiver
FormAsSender
Encryptor
Method FormAwal btnSender_Click
Deskripsi Inisialisasi class Menampilkan form Sender
btnReceiver_Click FormAsReceiver btnStart_Click btnGenerate_Click btnSendPub_Click btnGenSecret_Click btnAccFile_Click
Menampilkan form Receiver Inisialisasi class Menjalankan service pada port 2311 Membuat key pair Mengirim public key ke Sender Membuat shared secret key Menerima file video yang dikirim Sender, membaca digital signature, bila digital signature valid, maka file video akan didekripsi Inisialisasi class Melakukan koneksi ke Receiver Membuat key pair Mengirim public key ke Receiver Membuat shared secret key Mem-browse file Mengenkripsi file video
FormAsSender btnConnect_Click btnGenerate_Click btnSendPub_Click btnGenSecret_Click btnBrowse_Click btnEncFile_Click btnSend_Click
Menambahkan digital signature dan mengirim file video
getByte
Membaca file video dan membuatnya menjadi byte[]
openFile Encryptor callCipher decrypt
Membuka file Inisialisasi class Melakukan proses enkripsi atau dekripsi
encrypt
Memeriksa apakah data yang akan didekripsi valid, kemudian melakukan proses dekripsi dengan memanggil fungsi callCipher Memeriksa apakah data yang akan dienkripsi valid, kemudian melakukan proses enkripsi dengan memanggil fungsi callCipher
IV.3 Pengujian Aplikasi
30
Pengujian aplikasi dilakukan berdasarkan beberapa faktor: confidentiality dan integrity, waktu komputasi proses enkripsi maupun dekripsi, dan perbandingan ukuran berkas sebelum dan setelah proses enkripsi dilakukan. IV.3.1 Confidentiality dan Integrity Faktor confidentiality dan integrity merupakan faktor utama dalam pengembangan aplikasi kriptografi ini. Pada pengujian faktor confidentiality, dilakukan uji coba pada layer enkripsi/dekripsi dengan membuka file video yang telah dienkripsi, hasil dari uji coba tersebut file video tersebut tidak dapat dimainkan oleh video player. Pengujian faktor integrity dilakukan pada layer signature sesudah file video terenkripsi dibubuhi digital signature. Pengujian dilakukan dengan mencoba merubah private key yang digunakan untuk membuat digital signature. Hasil dari uji coba tersebut, digital signature yang dikirimkan tidak dikenali oleh receiver. Demikian pula bila dilakukan perubahan pada public key yang digunakan untuk memverifikasi digital signature, maka digital signature yang dikirimkan oleh sender tidak akan dikenali oleh receiver. Selain kedua hal tersebut, dilakukan pula pengujian dengan mengubah digital signature yang dikirimkan ke receiver. Hasilnya, perangkat lunak tidak akan mengenali digital signature tersebut dan tidak akan mendekripsi file video dengan digital signature yang tidak valid. IV.3.2 Waktu Pemrosesan Waktu pemrosesan mencakup waktu yang dibutuhkan untuk melakukan proses enkripsi dan proses dekripsi. Untuk melihat waktu yang dibutuhkan dalam melakukan proses enkripsi menggunakan algoritma RC5 pada berkas video, dilakukan percobaan sebanyak 3 kali menggunakan ukuran berkas yang berbedabeda, seperti terlihat pada tabel berikut:
Tabel IV.2 Lama waktu enkripsi RC5 pada berkas video
31
Ukuran berkas (bytes) 55.027.716 25.629.890 16.467.142
Lama enkripsi (s) 11 5 1
Berdasarkan hasil pada tabel di atas, maka dapat dilihat bahwa semakin besar ukuran berkas yang dienkripsi, maka semakin lama pula waktu yang dibutuhkan untuk melakukan proses enkripsi. Selanjutnya, untuk melihat waktu yang dibutuhkan dalam melakukan proses dekripsi menggunakan algoritma RC5 pada berkas video, dilakukan pula percobaan sebanyak 3 kali menggunakan berkas yang telah dienkripsi pada percobaan sebelumnya, hasil percobaan waktu proses dekripsi dapat dilihat pada tabel berikut: Tabel IV.3 Lama waktu dekripsi RC5 pada berkas video Ukuran berkas (bytes) 55.027.720 25.629.896 16.467.144
Lama dekripsi (s) 10 5 1
Berdasarkan hasil pada tabel di atas, maka dapat dilihat bahwa sama seperti proses enkripsi, bila ukuran berkas yang akan didekripsi semakin besar, maka semakin lama pula waktu yang dibutuhkan untuk melakukan proses dekripsi. IV.3.3 Ukuran Berkas Algoritma yang dikembangkan akan menambah ukuran berkas video yang telah dienkripsi maksimal sebanyak 8 bytes. Untuk melihat lebih jelas perbedaan ukuran berkas, dilakukan percobaan sebanyak 3 kali dengan menggunakan berkas yang ukuran awalnya berbeda-beda, hasil pengujian dapat dilihat pada tabel berikut:
Tabel IV.4 Perbandingan ukuran berkas video
32
Ukuran berkas (bytes) Awal Setelah proses enkripsi 55.027.716 55.027.720 25.629.890 25.629.896 16.467.142 16.467.144 Rata-rata perbandingan =
Perbandingan (%) 100,0000072 100,0000234 100,0000121 100.0000142
Berdasarkan hasil pada tabel di atas, dapat disimpulkan bahwa setelah proses enkripsi dilakukan, aplikasi akan menambah ukuran berkas rata-rata sebesar 0,0000142%.
33
BAB V SIMPULAN DAN SARAN Bab ini berisi simpulan dan saran dari perangkat lunak yang dikembangkan.
V.1 Simpulan Simpulan yang didapat dari pembuatan aplikasi kriptografi ini adalah: 1. Konsep digital envelope meningkatkan tingkat confidentiality dari proses enkripsi karena memadukan asymmetric key cryptography dengan symmetric key cryptography. 2. Digital signature meningkatkan faktor integrity dari suatu data, karena memastikan suatu data berasal dari pihak penanda tangan dan tidak mengalami perubahan selama proses transmisi. 3. Proses enkripsi menggunakan metode complete encryption algorithm pada berkas video menghasilkan tingkat confidentiality yang paling tinggi, namun memakan waktu lebih lama bila dibandingkan dengan dua meotda enkripsi lainnya.
V.2 Saran Hal-hal berikut dapat dijadikan masukan dalam pengembangan perangkat lunak lebih lanjut: 1. Aplikasi kriptografi ini dapat dikembangkan lebih jauh untuk meningkatkan keamanan dari video streaming, dengan mencoba memotong-motong berkas video yang akan dikirimkan sesuai dengan ukuran buffer yang akan dipakai pada proses streaming.
34
DAFTAR PUSTAKA [CHI94]
Chiariglione, Leonardo (1994). Official Web Page of the Moving Pictures
Experts
Group
(MPEG),
[online].
Available:
http://www.chiariglione.org/mpeg/ [Rabu, 9 April 2008]. [GHA03]
Ghanbari,
Mohammed
(2003).
Standard
Codecs:
Image
Compression to Advanced Video Coding. The Institution of Electrical Engineers, London, United Kingdom. [KAH03]
Kahate, Atul (2003). Cryptography and Network Security. McGraw-Hill.
[PAL06]
Palmgren, Keith, CISSP (2006). Diffie-Hellman Key Exchange, [online]. Avaiable: http://www.netip.com/articles.htm [Selasa, 11 Maret 2008].
[PIN07]
Pingrey, Sarah (2007). Encryption Today. The George Washington University.
[QIA96]
Qiao, Lintian dan Nahrstedt, Klara. A New Algorithm for MPEG Video Encryption. Department of Computer Science, University of Illinois, Urbana.
[RIV95]
Rivest, Ronald L. (1995). The RC5 Encryption Algorithm. MIT Laboratory for Computer Science. Cambridge.
[VIT06]
Vitaletti, Andre dan Palombizio, Gianni (2006). Rijndael for Sensor Networks: Is Speed the Main Issue?. Dipartimento di Informatica e Sistemistica, University “La Sapienza”, Rome, Italy.
[WAN07]
Wang, Yajun dan Cai, Mian dan Tang, Feng (2007). Design of A New Selective Video Encryption Scheme Based on H.264. Beijing University of Technology.
[YON02]
Yonata, Yosi (2002). Singkat Tepat Jelas Kompresi Video. PT. Elex Media Komputindo, Jakarta.
35