Anda di halaman 1dari 35

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 kelebihan-
kelebihan 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 berbeda-
beda 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 produk-
produk 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 tahapan-
tahapan 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 Nilai yang diijinkan


Ukuran block 16, 32, 64
Ukuran kunci rahasia (dalam bit) 0-2040
Jumlah round 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
Apakah i > r ?
D= F

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 class-
class 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 Method Deskripsi


FormAwal FormAwal Inisialisasi class
btnSender_Click Menampilkan form Sender
btnReceiver_Click Menampilkan form Receiver
FormAsReceiver FormAsReceiver Inisialisasi class
btnStart_Click Menjalankan service pada port 2311
btnGenerate_Click Membuat key pair
btnSendPub_Click Mengirim public key ke Sender
btnGenSecret_Click Membuat shared secret key
btnAccFile_Click Menerima file video yang dikirim Sender,
membaca digital signature, bila digital
signature valid, maka file video akan
didekripsi
FormAsSender FormAsSender Inisialisasi class
btnConnect_Click Melakukan koneksi ke Receiver
btnGenerate_Click Membuat key pair
btnSendPub_Click Mengirim public key ke Receiver
btnGenSecret_Click Membuat shared secret key
btnBrowse_Click Mem-browse file
btnEncFile_Click Mengenkripsi file video
btnSend_Click Menambahkan digital signature dan
mengirim file video
getByte Membaca file video dan membuatnya
menjadi byte[]
openFile Membuka file
Encryptor Encryptor Inisialisasi class
callCipher Melakukan proses enkripsi atau dekripsi
decrypt
Memeriksa apakah data yang akan
didekripsi valid, kemudian melakukan proses
dekripsi dengan memanggil fungsi callCipher
encrypt
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 berbeda-
beda, seperti terlihat pada tabel berikut:

Tabel IV.2 Lama waktu enkripsi RC5 pada berkas video

31
Ukuran berkas (bytes) Lama enkripsi (s)
55.027.716 11
25.629.890 5
16.467.142 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) Lama dekripsi (s)


55.027.720 10
25.629.896 5
16.467.144 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)
Perbandingan (%)
Awal Setelah proses enkripsi
55.027.716 55.027.720 100,0000072
25.629.890 25.629.896 100,0000234
16.467.142 16.467.144 100,0000121
Rata-rata perbandingan = 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

Anda mungkin juga menyukai