Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol
6
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi merupakan sebuah seni penyandian pesan dalam rangka mencapai tujuan
keamanan dalam pertukaran informasi.
2.1.1. Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani yang terdiri dari dua kata yaitu crypto dan
graphia. Crypto berarti rahasia dan graphia berarti tulisan. Jadi secara etimologi
kriptografi adalah tulisan rahasia. Secara terminologi kriptografi didefinisikan sebagai
seni dan ilmu dalam menyandikan pesan dan menjaga keamanannya ketika pesan
tersebut dikirim sampai pesan tersebut diterima (Mollin, 2007).
Kriptografi merupakan ilmu mengenai teknik enkripsi dimana data diacak
menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang
yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi
mengembalikan data asli. Proses enkripsi dilakukan menggunakan suatu algoritma
dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi
yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia
terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter.
Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter
menjadi ekuivalen dengan kunci) (Kromodimoeljo, 2010).
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan
dengan p), yaitu pesan asli yang akan disampaikan pengirim kepada penerima pesan.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan c).
Kunci yang dikirimkan pengirim kepada penerima pesan untuk proses dekripsi disebut
dengan key (disimbolkan dengan k). Fungsi enkripsi disimbolkan dengan E(p)
sedangkan fungsi dekripsi disimbolkan dengan D(c) (Scheineier, 1996).
Universitas Sumatera Utara
7
2.1.2. Tujuan Kriptografi
Ada beberapa tujuan kriptografi, diantaranya adalah sebagai berikut:
1. Kerahasiaan (Secrecy)
Secrecy bermakna kerahasiaan. Setiap informasi yang dikirim atau diterima hanya
dapat diakses oleh pihak yang berkepentingan. Enkripsi pesan bertujuan untuk
tetap merahasiakan pesan sampai kepada penerima dengan aman. Selanjutnya
pesan yang telah diterima akan didekripsi oleh penerima dengan algoritma yang
telah disepakati dan kunci yang telah dikirimkan dengan jalur yang lebih aman
(Scheineier, 1996).
2. Integritas (Integrity)
Integritas dalam kriptografi berhubungan dengan menjaga keaslian data, artinya
data yang diterima tidak rusak, berkurang, bertambah atau telah dimanipulasi oleh
pihak lain sebelum diterima oleh penerima data (Scheineier, 1996).
3. Autentikasi (Authentication )
Autentikasi berkaitan dengan identifikasi dan verifikasi, baik secara sistem
maupun informasi itu sendiri. Salah satu sarana proses autentikasi adalah melalui
password. Apabila proses ini menggunakan password, maka protocol autentikasi
harus aman dalam proses pengirimannya dan tidak digunakan oleh pihak-pihak
yang tidak bertanggung jawab. Teknik kriptografi sangat diperlukan untuk
permasalahan ini (Scheineier, 1996).
4. Non-Repudiation
Non-Repudiation adalah usaha untuk memastikan bahwa baik pesan maupun
kunci yang sampai adalah benar-benar pesan atau kunci yang diharapkan. Selain
itu, non-repudiation juga adalah usaha untuk menghindari adanya penyangkalan
terhadap pengiriman/terciptanya
suatu
informasi
oleh
pengirim
pesan
(Scheineier, 1996).
2.1.3. Penggunaan Kriptografi
Dalam ilmu kriptografi digunakan sebuah teknik matematika untuk menjaga keamanan
sebuah informasi. Keamanan yang dimaksud adalah terdapat beberapa unsur seperti
kerahasiaan, keutuhan data dan otentikasi entitas (Sadikin, 2012).
Universitas Sumatera Utara
8
Pada teknik penyandian pesan dalam ilmu kriptografi, salah seorang mengirim pesan
kepada orang lainnya dengan melakukan pengkodean pesan asli disebut enkripsi. Pesan
yang telah dirahasiakan tersebut hanya dapat dibaca oleh penerima pesan. Penerima
pesan akan mengembalikan kode – kode yang telah diterimanya kedalam pesan asli
disebut dekripsi.
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan
dengan p), yaitu pesan asli yang akan disampaikan pengirim kepada penerima pesan.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan c).
Kunci yang dikirimkan pengirim kepada penerima pesan untuk proses dekripsi disebut
dengan key (disimbolkan dengan k). Fungsi enkripsi disimbolkan dengan E(p)
sedangkan fungsi dekripsi disimbolkan dengan D(c) (Scheineier, 1996).
2.1.4. Kriptografi Klasik
Kriptografi klasik dibagi menjadi dua jenis yaitu jenis subtitusi dimana sebuah karakter
atau sekelompok karakter diubah menjadi sebuah karakter atau kelompok karakter lain,
dan jenis transposisi dimana karakter – karakter yang ada diubah posisinya. Kriptografi
jenis ini berorientasi pada karakter (Sadikin,2012).
Pada
pemaparan
(Sadikin,2012)
Kriptografi
Klasik
digunakan
untuk
mengirimkan pesan rahasia pada 400 sebelum masehi diperlihatkan pada gambar 2.1
dibawah ini :
Gambar 2.1 Scytale
2.1.5. Kriptografi Modern
Kriptografi modern menggunakan prinsip kunci untuk menenkripsikan dan
mendekripsikan pesan. Menurut (Sadikin,2012) kriptografi modern terbagi menjadi dua
jenis yaitu :
1. Algoritma simetris, yaitu algoritma yang menggunakan kunci yang sama untuk
proses enkripsi dan dekripsi.
Universitas Sumatera Utara
9
2. Algoritma asimetris, yaitu algoritma yang menggunakan kunci yang berbeda
untuk proses enkripsi dan dekripsi.
Pada penelitian ini, dilakukan pengujian algoritma Massey-Omura yang merupakan
kategori algoritma kriptografi modern pada jenis asimetris. Pada gambar 2.2 dibawah
ini diperlihatkan simulasi Algoritma Simetris.
Gambar 2.2 Simulasi Algoritma Simetris
Pada gambar 2.3 dibawah ini diperlihatkan simulasi Algoritma Asimetris
Gambar 2.3 Simulasi Algoritma Asimetris
2.1.6. Massey-Omura
Massey-Omura Cryptosystem adalah salah satu cryptosystem kunci publik yang
berdasarkan pada logaritma diskrit. Diusulkan oleh James Massey dan Jim K. Omura
pada tahun 1982 sebagai pengembangan atas Three Pass Protocol oleh Shamir pada
tahun 1980, dimana pengirim dan penerima tidak bertukar kunci namun protocol ini
memerlukan pengirim dan penerima yang memiliki dua kunci untuk mengenkripsi dan
mendekripsi pesan (Yan, 2013).
Pada penjelasan (Yan, 2013) berikut cara kerja dari Algoritma Massey-Omura :
1. Semua pengguna telah mensepakati kelompok batasan atas bidang tetap batasan
Fp dengan p sebagai kekuatan utama
2. Setiap pengguna secara rahasia memilih acak bilangan bulat e antara 0 dan p –
1 seperti GCD (e, p – 1) = 1, dan menghitung d = e – 1 mod (p – 1) dengan
menggunakan algoritma eucludean
3. Sekarang anggaplah bahwa Alice ingin mengirim pesan M yang aman untuk
Bob, kemudian mereka ikuti prosedur berikut :
a. Alice pertama mengirimkan M e A kepada Bob,
Universitas Sumatera Utara
10
b. Pada saat menerima pesan, Bob mengirimkan MeAeB kembali ke Alice
(perhatikan bahwa saat ini, Bob tidak bisa membaca pesan Alice M)
c. Alice mengirim MeAeBdA = MeB kepada Bob, Bob kemudian menghitung
MdBeB = M, dan terbukalah pesan Alice M
Berikut ini adalah contoh penggunaan algoritma Massey-Omura dalam
merahasiakan sebuah pesan :
a. Terdapat pesan yang akan dikirim oleh pengirmim kepada penerima yaitu
“ANDIKA MULIA UTAMA”.
b. Sepakati tabel encoding yang digunakan. Dalam hal ini menggunakan tabel
ASCII.
c. Sepakati sebuah bilangan prima p dimana pada tahap ini menggunakan
Algoritma Lehmann yaitu L = a
p-1/2
mod p
Dipilih p = 101, apakah 101 adalah bilangan prima?
Pembuktian :
p = 101 aϵ{2,3,...,101}
a=2
a=5
250 mod 101 = -1
550 mod 101 = -1
a = 99
a = 100
9950 mod 101 = -1
10050 mod 101 = 1
∴ 101 adalah prima
d. Proses 1 untuk pengirim
1. Tentukan sebuah bilangan eA dengan syarat:
2 < eA < p-1 dan eA relatif prima dengan p-1
dipilih eA = 21
untuk membuktikan apakah 21 relatif prima dengan 101, maka
digunakan Euclidean GCD sebagai berikut :
100 mod 21 = 16
21 mod 16 = 5
16 mod 5 = 1
Universitas Sumatera Utara
11
5 mod 1 = 0
Sehingga GCD (21,100) = 1
2. Hitung dA sebagai invers dari eA sebagai berikut :
Pada tabel 2.1 dibawah ini diperlihatkan perhitungan nilai dA :
Tabel 2.1 Perhitungan nilai dA
1
dA * eA ≡1 (mod p -1)
2
42
3
63
81
⋮
dA
21
1
STOP, dA = 81
3. Tentukan pesan yang akan dikirim, lalu konversikan dengan tabel
ASCII.
Plaintext = “ANDIKA MULIA UTAMA”
M = 65 78 68 73 75 65 32 77 85 76 73 65 32 85 84 65 77 65
4. Enkripsi pesan dengan rumus C1 = MeA mod p . . . . . . . . . . . . . . . . . .(1)
Untuk A : C1 = 6521 mod 101 = 65
Untuk N : C1 = 7821 mod 101 = 37
Untuk D : C1 = 6821 mod 101 = 24
Untuk I
: C1 = 7321 mod 101 = 67
Untuk K : C1 = 7521 mod 101 = 74
Untuk A : C1 = 6521 mod 101 = 65
Untuk Space : C1 = 3221 mod 101 = 32
Untuk M : C1 = 7721 mod 101 = 45
Untuk U : C1 = 8521 mod 101 = 70
Untuk L : C1 = 7621 mod 101 = 47
Untuk I
: C1 = 7321 mod 101 = 67
Untuk A : C1 = 6521 mod 101 = 65
Untuk Space : C1 = 3221 mod 101= 32
Untuk U : C1 = 8521 mod 101 = 70
Universitas Sumatera Utara
12
Untuk T : C1 = 8421 mod 101 = 84
Untuk A : C1 = 6521 mod 101 = 65
Untuk M : C1 = 7721 mod 101 = 45
Untuk A : C1 = 6521 mod 101 = 65
5. Setelah didapat C1 = 65 37 24 67 74 65 32 45 70 47 67 65 32 70 84 65
45 65, kemudian dikirim kepada penerima.
e. Proses 1 untuk penerima
1. Terima Ciphertext dari Pengirim
2. Tentukan sebuah bilangan eB dengan syarat:
2 < eB < p-1 dan eB relatif prima dengan p-1
dipilih eB = 57
untuk membuktikan apakah 57 relatif prima dengan 101, maka
digunakan Euclidean GCD sebagai berikut :
100 mod 57 = 43
57 mod 43 = 14
43 mod 14 = 1
14 mod 1 = 0
Sehingga GCD (57,100) = 1
3. Hitung dB sebagai invers dari eB sebagai berikut :
Pada tabel 2.2 dibawah ini diperlihatkan perhitungan nilai dB :
Tabel 2.2 Perhitungan nilai dB
1
dB * eB ≡1 (mod p -1)
2
14
3
71
93
⋮
dB
57
1
STOP, dA = 93
Universitas Sumatera Utara
13
4. Hitung C2 = C1eB mod p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2)
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 37 : C2 = 3757 mod 101 = 58
Untuk 24 : C2 = 2457 mod 101 = 16
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 74 : C2 = 7457 mod 101 = 50
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 47 : C2 = 4757 mod 101 = 64
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 84 : C2 = 8457 mod 101 = 87
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 65 : C2 = 6557 mod 101 = 17
didapat C2 = 17 58 16 75 50 17 62 70 9 64 75 17 62 9 87 17 70 17
f. Proses 2 untuk pengirim
1. Terima C2 dari Penerima
2. Hitung C3 = C2dA mod p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3)
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 58 : C3 = 5881 mod 101 = 97
Untuk 16 : C3 = 1681 mod 101 = 5
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 50 : C3 = 5081 mod 101 = 3
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 70 : C3 = 7081 mod 101 = 85
Untuk 9 : C3 = 981 mod 101 = 21
Universitas Sumatera Utara
14
Untuk 64 : C3 = 6481 mod 101 = 23
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 9 : C3 = 981 mod 101 = 21
Untuk 87 : C3 = 8781 mod 101 = 87
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 70 : C3 = 7081 mod 101 = 85
Untuk 17 : C3 = 1781 mod 101 = 17
Diapat C3 = 17 97 5 61 3 17 62 85 21 23 61 17 62 21 87 17 85 17
3. Kemudian dikirim C3 kepada penerima
g. Prorses 2 untuk penerima
1. Terima C3 dari pengirim
2. Dekripsi pesan dengan rumus M = C3dB mod p . . . . . . . . . . . . . . . (4)
Kemudian konversikan ke tabel ASCII.
Untuk 17 : M = 1793 mod 101 = 65
Untuk 97 : M = 9793 mod 101 = 78
Untuk 5 : M = 593 mod 101 = 68
Untuk 61 : M = 6193 mod 101 = 73
Untuk 3 : M = 393 mod 101 = 75
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 85 : M = 8593 mod 101 = 77
Untuk 21 : M = 2193 mod 101 = 85
Untuk 23 : M = 2393 mod 101 = 76
Untuk 61 : M = 6193 mod 101 = 73
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 21 : M = 2193 mod 101 = 85
Untuk 87 : M = 8793 mod 101 = 84
Untuk 17 : M = 1793 mod 101 = 65
Untuk 85 : M = 8593 mod 101 = 77
Universitas Sumatera Utara
15
Untuk 17 : M = 1793 mod 101 = 65
Didapat M = 65 78 68 73 75 65 32 77 85 76 73 65 32 85 84 65 77 65
maka Plaintext = “ANDIKA MULIA UTAMA”
2.2. Kompresi
Pada pembahasan dibawah ini akan dipaparkan mengenai kompresi terkait definisi
kompresi, penggunaan kompesi, dan Elias Gamma kompresi.
2.2.1. Definisi Kompresi
Kompresi data adalah suatu proses yang dapat mengubah sebuah aliran data masukan
(data asli) ke dalam aliran data yang lain (data yang dimampatkan) yang memiliki
ukuran yang lebih kecil (Salomon & Motta, 2010).
Kompresi merupakan sebuah seni untuk merepresentasikan informasi yang tersusun
lebih padat dari pada aslinya atau disebut terkompresi (Kodituwakku & Amarasinghe,
2010).
2.2.2. Penggunaan Kompresi
Secara umum terdapat dua golongan kompresi :
1. Kompresi Lossless
Algoritma kompresi Lossless adalah jika pada saat proses kompresi tidak ada data
yang hilang dan berhasil mengembalikan data dengan utuh. Kompresi ini cocok
untuk basis data, dokumen atau spreadsheet (Bhattacharjee et al, 2013).
Beberapa algoritma lossless compression yang sudah umum diterapkan antara
lain algoritma Huffman, Shannon – Fano, RLE LZ77, LZSS, Elias Delta dan Elias
Gamma. Dalam hal ini, Elias Gamma merupakan algoritma yang akan digunakan
dalam penelitian.
2. Kompresi Lossy
Algoritma kompresi Lossy secara umum digunakan untuk melakukan kompresi
gambar, suara dan juga video. Pada saat setelah kompresi akan ada data yang hilang.
Dengan kata lain, data yang kita kompresi tidak akan utuh seperti semula
(Bhattacharjee et al, 2013).
Universitas Sumatera Utara
16
Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa
faktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik
kompresi data tersebut (Bhattacharjee et al, 2013), yaitu :
1. Compression Ratio
Compression Ratio adalah rasio perbandingan antara file terkompresi dan file asli
�
2.
�
� � =
�
%
Ratio of Compression
Compression Factor adalah rasio antara file asli dan file setelah dikompresi
�
�
�
=
3. Space savings (sc)
Space savings adalah persentase selisih antara data yang belum dikompresi dengan
besar data yang dikompresi.
�
=
�−
�
ℎ
�
�
%
4. Waktu Kompresi dan Dekompresi
Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem
untuk melakukan proses kompresi dan dekompresi dari mulai pembacaan data
hingga proses encoding pada data tersebut. Semakin kecil waktu yang diperoleh
maka semakin efisien metode yang digunakan dalam proses kompresi dan
dekompresi itu.
2.2.3. Elias Gamma
Elias Gamma Code adalah sebuah algoritma kompresi yang dibuat oleh Peter Elias.
Untuk membuat tabel kode Elias Gamma, Elias menambah panjang kode dalam
unary(u). Dalam kode berikutnya, E ditambahkan pada panjang kode (M) dalam biner
Universitas Sumatera Utara
17
(β). Dengan demikian, Elias Gamma Code, yang juga untuk bilangan bulat positif,
sedikit lebih kompleks untuk dibangun (Salomon, 2007). Kode Elias Gamma tampak
pada tabel 2.3 dibawah ini :
Tabel 2.3 Kode Elia Gamma(Salomon, 20007)
N Kode Elias Gamma n
Kode Elias Gamma
1
1
10 0001010
2
010
11 0001011
3
011
12 0001100
4
00100
13 0001101
5
00101
14 0001110
6
00110
15 0001111
7
00111
16 000010000
8
0001000
17 000010001
9
0001001
18 000010010
Keterangan tabel 2.3 diatas :
n = nilai index karakter
Adapun aturan untuk mengkodekan sebuah bilangan dengan menggunakan Elias
Gamma (Salomon & Motta, 2010) adalah sebagai berikut :
1. Tulis bilangan (n) tersebut dalam bentuk biner (β),
2. Hitung jumlah bit β(n) sebagai (M) dan hapus satu bit β(n) paling kiri.
3. Bentuk kode unary u(M) adalah (M-1) dikali dengan bit nol ditambah bit satu
4. Gabungkan kode u(M) dan β(n).
Sebagai contoh ambil sebuah n = 13. Nilai biner dari 13 adalah β(13) = 1101.
Maka dihitung panjang biner n = 13 sebagai nilai M yaitu 4. Dihapus satu bit paling kiri
dari β(13) sehingga sama dengan 101. Dihitung nilai u(M) = 0001, gabungkan kode
u(M) dan β(13) yaitu 0001101 (Salomon & Motta, 2010).
Berikut ini adalah contoh perhitungan kompresi dengan menggunakan Elias
Gamma Code. Dalam hal ini, string yang akan dikompresi “ANDIKA MULIA
UTAMA”. Perhitungan seperti terlihat dibawah ini :
1. Dilakukan pembacaan string “ANDIKA MULIA UTAMA”
Universitas Sumatera Utara
18
2. Dilakukan pengurutan karakter dari tertinggi ke terendah menurut frekuensi
kemunculan karakter
3. Dilakukan konversi nilai karakter pada tabel ASCII kedalam bentuk bilangan
biner. Pada tabel 2.4 dibawah ini diperlihatkan perhitungan karakter :
Tabel 2.4 Perhitungan karakter sebelum kompresi
n
Char
ASCII
ASCII(2)
Bit
F
bit x F
1
A
65
1000001
8
5
40
2
I
73
1001001
8
2
16
3
Space
32
0100000
8
2
16
4
M
77
1001101
8
2
16
5
U
85
1010101
8
2
16
6
N
78
1001110
8
1
8
7
D
68
1000100
8
1
8
8
K
75
1001011
8
1
8
9
L
76
1001100
8
1
8
10
T
84
1010100
8
1
8
Jumlah
144 bit
Keterangan tabel 2.4 diatas :
n
= nilai index karakter
Char
= karakter yang muncul
ASCII = nilai ASCII karakter dalam desimal
ASCII(2) = nilai ASCII karakter dalam biner
F
= frekuensi kemunculan karakter
4. Proses kompresi algoritma Elias Gamma sebagai berikut :
a. Ubah bilangan n kedalam bentuk biner (n)
Untuk n = 1 kode biner = 12 (karakter A)
Untuk n = 2 kode biner = 102 (karakter I)
Untuk n = 3 kode biner = 112 (karakter Space)
Untuk n = 4 kode biner = 1002 (karakter M)
Untuk n = 5 kode biner = 1012 (karakter U)
Universitas Sumatera Utara
19
Untuk n = 6 kode biner = 1102 (karakter N)
Untuk n = 7 kode biner = 1112 (karakter D)
Untuk n = 8 kode biner = 10002 (karakter K)
Untuk n = 9 kode biner = 10012 (karakter L)
Untuk n = 10 kode biner = 11002 (karakter T)
b. Dihitung panjang bilangan biner | (n) | sebagai M dan dihapus satu bit
paling kiri dari (n). Pada tabel 2.5 dibawah ini diperlihatkan perhitungan
panjang biner
Tabel 2.5 Perhitungan panjang biner
N
Char
M
1
A
1
{}
2
I
2
0
3
Space
2
1
4
M
3
00
5
U
3
01
6
N
3
10
7
D
3
11
8
K
4
000
9
L
4
001
10
T
4
100
(n)
c. Menghitung kode unary u(M) dengan menggunkan rumus u(M) = (M1)*”0”+”1” dan kemudian membentuk kode Elias Gamma dengan
menggabungkan u(M) + (n). Perhitungan u(M) seperti terlihat pada tabel
2.6 dibawah ini :
Tabel 2.6 Perhitungan u(M) dan kode Elias Gamma
n
char
(n)
M
u(M) = (M-1)*”0”+”1”
Elias Gamma code
1
A
1
{}
1
1
2
I
2
0
01
010
Space 2
1
01
011
00
001
00100
3
4
M
3
Universitas Sumatera Utara
20
n
char
M
(n)
u(M) = (M-1)*”0”+”1”
Elias Gamma code
5
U
3
01
001
00101
6
N
3
10
001
00110
7
D
3
11
001
00111
8
K
4
000
0001
0001000
9
L
4
001
0001
0001001
10
T
4
010
0001
0001010
Sehingga didapat hasil komresi per karakter string sebagai berikut :
A N
D
I
K
A Sp
M
U
L
I A Sp
U
1 00110 00111 010 0001000 1 011 00100 00101 0001001 010 1 011 00101
T
A M
A
0001010 1 00100 1
5. Proses dekompresi Elias Gamma sebagai berikut :
a. Masukan kode Elias Gamma karakter n sebagai E i
b. Ambil jumlah digit 0 sebelum digit 1 pertama Ei sebagai N
c.
Ambil bit biner setelah digit 1 sebagai bilangan bulat desimal L
d. Menghitung keluaran karakter n dengan menggunakan n = 2n + L
Untuk E(1) = 1 maka n = 20 + 0 = 1 (karakter A)
Untuk E(2) = 010 maka n = 21 + 0 = 2 (karakter I)
Untuk E(3) = 011 maka n = 21 + 1 = 3 (karakter Space)
Untuk E(4) = 00100 maka n = 22 + 0 = 4 (karakter M)
Untuk E(5) = 00101 maka n = 22 + 1 = 5 (karakter U)
Untuk E(6) = 00110 maka n = 22 + 2 = 6 (karakter N)
Untuk E(7) = 00111 maka n = 22 + 3 = 7 (karakter D)
Untuk E(8) = 0001000 maka n = 23 + 0 = 8 (karakter K)
Untuk E(9) = 0001001maka n = 23 + 1 = 9 (karakter L)
Untuk E(10) = 0001010 maka n = 23 + 2 = 10 (karakter T)
Universitas Sumatera Utara
21
2.3. Three-Pass Protocol
Three-Pass Protocol adalah sebuah skema kerja yang memungkinkan dua orang
melakukan pertukaran pesan tanpa melakukan pertukaran kunci enkripsi. Protokol ini
pertama kali dikembangkan oleh Adi Shamir pada tahun 1980 ( Hasdiana,2015).
Three-Pass Protocol merupakan suatu cara yang memungkinkan dua orang melakukan
penguncian pesan rahasia secara ganda dengan tetap merahsiakan kunci masing –
masing (Kanamori et al,2009).
Pada penjelasan (Kanamori,2009), terdapat tiga tahap pertukaran pesan dalam
skema Three-Pass Protocol. Berikut adalah cara kerja Three-Pass Protocol:
1. Alice sebagai pengirim pesan melakukan enkripsi pesan dengan kunci pribadi
miliknya. Alice kemudian mengirimkan pesan yang telah dienkripsi (� ) kepada
penerima pesan, yaitu Bob.
2. Bob menerima � dan kemudian melakukan enkripsi � menggunakan kunci
pribadi miliknya. Bob kemudian mengirimkan pesan � yang telah dienkripsi
(� ) kepada Alice.
3. Alice yang menerima � kemudian mendekripsikan pesan � menggunakan
kunci pribadi miliknya. Alice kemudian mengirimkan pesan � yang telah
didekripsi (� ) kepada Bob. Selanjutnya Bob melakukan dekripsi pesan � .
Hasil dekripsi pesan � tersebut merupakan plaintext yang dikirimkan Alice.
Pada pemaparan (sujiono,2016), cara kerja Three-Pass Protocol tersebut dapat
diilustrasikan seperti pada gambar 2.4 :
Gambar 2.4 Skema Kerja Three-Pass Protocol
Universitas Sumatera Utara
22
Keterangan gambar 2.4 pada halaman 21:
: kunci enkripsi oleh Alice
: kunci dekripsi oleh Alice
: kunci enkripsi oleh Bob
: kunci dekripsi oleh Bob
2.4. Black Box Testing
Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari
perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan
pengetesan pada spesifikasi fungsional program (Pressman, 2012).
Black Box menentukan perilaku sistem atau bagian sistem. Cara ini melihat
bagaiman sistem merespon user dalam menerima inputan yang berbeda (Pressman,
2012).
2.5. Penelitian yang Relevan
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh
penulis antara lain adalah sebagai berikut:
- Arjana, dkk (2012) mengimplementasikan penggunaan algoritma Vignere Cipher
untuk mengamankan data pelanggan. Penelitian tersebut membuktikan bahwa
algoritma Vignere Cipher berhasil meningkatkan keamanan data dan keakuratan
informasi.
- Haramaini (2014) telah berhasil mengimplementasikan algoritma One Time Pad
dengan menggunakan Three-Pass Protocol. Pada penelitian tersebut dijelaskan
bahwa algoritma One Time Pad tidak cukup aman jika diimplementasikan
dengan Three-Pass Protocol sehingga diperlukan sedikit pengembangan yang
dilakukan untuk meningkatkan keamanan algoritma ini. Pengembangan yang
dilakukan peneliti adalah dengan menambah panjang range bilangan prima
yang akan diacak, sehingga perulangan kunci yang digunakan akan semakin
sulit untuk ditebak.
- Implementasi algoritma One Time Pad dapat menjaga keamanan dan kerahasiaan
data yang tersimpan pada sebuah aplikasi berbasis web. Selain itu,
pengimplementasian algoritma ini juga mampu memastikan bahwa user yang
Universitas Sumatera Utara
23
menggunakan aplikasi adalah user yang benar-benar memiliki wewenang untuk
mengakses informasi tersebut (Mulyono & Rodiah, 2013).
- Sebayang (2014) berhasil mengimplementasikan kombinasi dua algoritma
kriptografi klasik pada Three-Pass Protocol, kedua algoritma tersebut adalah
Beaufort Cipher dan Affine Cipher . Penelitian ini membuktikan bahwa
mekanisme Three-Pass Protocol dapat diimplementasikan menggunakan dua
algoritma sekaligus.
- Widiasari (2012) mengombinasikan algoritma kriptografi Advanced Encryption
Standard (AES) dan One Time Pad dalam mengamankan data. Kombinasi kedua
algoritma menghasilkan keamanan data yang baik dengan ukuran file yang sama
baik sebelum maupun setelah proses enkripsi.
- Hardiyana (2013) berhasil mengimplementasikan algoritma Massey-Omura
dengan teknik steganografi kombinasi END OF FILE (EOF) dan FIRST OF
FILE (FOF) untuk keamanan data.
Universitas Sumatera Utara
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi merupakan sebuah seni penyandian pesan dalam rangka mencapai tujuan
keamanan dalam pertukaran informasi.
2.1.1. Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani yang terdiri dari dua kata yaitu crypto dan
graphia. Crypto berarti rahasia dan graphia berarti tulisan. Jadi secara etimologi
kriptografi adalah tulisan rahasia. Secara terminologi kriptografi didefinisikan sebagai
seni dan ilmu dalam menyandikan pesan dan menjaga keamanannya ketika pesan
tersebut dikirim sampai pesan tersebut diterima (Mollin, 2007).
Kriptografi merupakan ilmu mengenai teknik enkripsi dimana data diacak
menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang
yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi
mengembalikan data asli. Proses enkripsi dilakukan menggunakan suatu algoritma
dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi
yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia
terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter.
Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter
menjadi ekuivalen dengan kunci) (Kromodimoeljo, 2010).
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan
dengan p), yaitu pesan asli yang akan disampaikan pengirim kepada penerima pesan.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan c).
Kunci yang dikirimkan pengirim kepada penerima pesan untuk proses dekripsi disebut
dengan key (disimbolkan dengan k). Fungsi enkripsi disimbolkan dengan E(p)
sedangkan fungsi dekripsi disimbolkan dengan D(c) (Scheineier, 1996).
Universitas Sumatera Utara
7
2.1.2. Tujuan Kriptografi
Ada beberapa tujuan kriptografi, diantaranya adalah sebagai berikut:
1. Kerahasiaan (Secrecy)
Secrecy bermakna kerahasiaan. Setiap informasi yang dikirim atau diterima hanya
dapat diakses oleh pihak yang berkepentingan. Enkripsi pesan bertujuan untuk
tetap merahasiakan pesan sampai kepada penerima dengan aman. Selanjutnya
pesan yang telah diterima akan didekripsi oleh penerima dengan algoritma yang
telah disepakati dan kunci yang telah dikirimkan dengan jalur yang lebih aman
(Scheineier, 1996).
2. Integritas (Integrity)
Integritas dalam kriptografi berhubungan dengan menjaga keaslian data, artinya
data yang diterima tidak rusak, berkurang, bertambah atau telah dimanipulasi oleh
pihak lain sebelum diterima oleh penerima data (Scheineier, 1996).
3. Autentikasi (Authentication )
Autentikasi berkaitan dengan identifikasi dan verifikasi, baik secara sistem
maupun informasi itu sendiri. Salah satu sarana proses autentikasi adalah melalui
password. Apabila proses ini menggunakan password, maka protocol autentikasi
harus aman dalam proses pengirimannya dan tidak digunakan oleh pihak-pihak
yang tidak bertanggung jawab. Teknik kriptografi sangat diperlukan untuk
permasalahan ini (Scheineier, 1996).
4. Non-Repudiation
Non-Repudiation adalah usaha untuk memastikan bahwa baik pesan maupun
kunci yang sampai adalah benar-benar pesan atau kunci yang diharapkan. Selain
itu, non-repudiation juga adalah usaha untuk menghindari adanya penyangkalan
terhadap pengiriman/terciptanya
suatu
informasi
oleh
pengirim
pesan
(Scheineier, 1996).
2.1.3. Penggunaan Kriptografi
Dalam ilmu kriptografi digunakan sebuah teknik matematika untuk menjaga keamanan
sebuah informasi. Keamanan yang dimaksud adalah terdapat beberapa unsur seperti
kerahasiaan, keutuhan data dan otentikasi entitas (Sadikin, 2012).
Universitas Sumatera Utara
8
Pada teknik penyandian pesan dalam ilmu kriptografi, salah seorang mengirim pesan
kepada orang lainnya dengan melakukan pengkodean pesan asli disebut enkripsi. Pesan
yang telah dirahasiakan tersebut hanya dapat dibaca oleh penerima pesan. Penerima
pesan akan mengembalikan kode – kode yang telah diterimanya kedalam pesan asli
disebut dekripsi.
Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan
dengan p), yaitu pesan asli yang akan disampaikan pengirim kepada penerima pesan.
Sedangkan pesan setelah dienkripsi disebut dengan ciphertext (disimbolkan dengan c).
Kunci yang dikirimkan pengirim kepada penerima pesan untuk proses dekripsi disebut
dengan key (disimbolkan dengan k). Fungsi enkripsi disimbolkan dengan E(p)
sedangkan fungsi dekripsi disimbolkan dengan D(c) (Scheineier, 1996).
2.1.4. Kriptografi Klasik
Kriptografi klasik dibagi menjadi dua jenis yaitu jenis subtitusi dimana sebuah karakter
atau sekelompok karakter diubah menjadi sebuah karakter atau kelompok karakter lain,
dan jenis transposisi dimana karakter – karakter yang ada diubah posisinya. Kriptografi
jenis ini berorientasi pada karakter (Sadikin,2012).
Pada
pemaparan
(Sadikin,2012)
Kriptografi
Klasik
digunakan
untuk
mengirimkan pesan rahasia pada 400 sebelum masehi diperlihatkan pada gambar 2.1
dibawah ini :
Gambar 2.1 Scytale
2.1.5. Kriptografi Modern
Kriptografi modern menggunakan prinsip kunci untuk menenkripsikan dan
mendekripsikan pesan. Menurut (Sadikin,2012) kriptografi modern terbagi menjadi dua
jenis yaitu :
1. Algoritma simetris, yaitu algoritma yang menggunakan kunci yang sama untuk
proses enkripsi dan dekripsi.
Universitas Sumatera Utara
9
2. Algoritma asimetris, yaitu algoritma yang menggunakan kunci yang berbeda
untuk proses enkripsi dan dekripsi.
Pada penelitian ini, dilakukan pengujian algoritma Massey-Omura yang merupakan
kategori algoritma kriptografi modern pada jenis asimetris. Pada gambar 2.2 dibawah
ini diperlihatkan simulasi Algoritma Simetris.
Gambar 2.2 Simulasi Algoritma Simetris
Pada gambar 2.3 dibawah ini diperlihatkan simulasi Algoritma Asimetris
Gambar 2.3 Simulasi Algoritma Asimetris
2.1.6. Massey-Omura
Massey-Omura Cryptosystem adalah salah satu cryptosystem kunci publik yang
berdasarkan pada logaritma diskrit. Diusulkan oleh James Massey dan Jim K. Omura
pada tahun 1982 sebagai pengembangan atas Three Pass Protocol oleh Shamir pada
tahun 1980, dimana pengirim dan penerima tidak bertukar kunci namun protocol ini
memerlukan pengirim dan penerima yang memiliki dua kunci untuk mengenkripsi dan
mendekripsi pesan (Yan, 2013).
Pada penjelasan (Yan, 2013) berikut cara kerja dari Algoritma Massey-Omura :
1. Semua pengguna telah mensepakati kelompok batasan atas bidang tetap batasan
Fp dengan p sebagai kekuatan utama
2. Setiap pengguna secara rahasia memilih acak bilangan bulat e antara 0 dan p –
1 seperti GCD (e, p – 1) = 1, dan menghitung d = e – 1 mod (p – 1) dengan
menggunakan algoritma eucludean
3. Sekarang anggaplah bahwa Alice ingin mengirim pesan M yang aman untuk
Bob, kemudian mereka ikuti prosedur berikut :
a. Alice pertama mengirimkan M e A kepada Bob,
Universitas Sumatera Utara
10
b. Pada saat menerima pesan, Bob mengirimkan MeAeB kembali ke Alice
(perhatikan bahwa saat ini, Bob tidak bisa membaca pesan Alice M)
c. Alice mengirim MeAeBdA = MeB kepada Bob, Bob kemudian menghitung
MdBeB = M, dan terbukalah pesan Alice M
Berikut ini adalah contoh penggunaan algoritma Massey-Omura dalam
merahasiakan sebuah pesan :
a. Terdapat pesan yang akan dikirim oleh pengirmim kepada penerima yaitu
“ANDIKA MULIA UTAMA”.
b. Sepakati tabel encoding yang digunakan. Dalam hal ini menggunakan tabel
ASCII.
c. Sepakati sebuah bilangan prima p dimana pada tahap ini menggunakan
Algoritma Lehmann yaitu L = a
p-1/2
mod p
Dipilih p = 101, apakah 101 adalah bilangan prima?
Pembuktian :
p = 101 aϵ{2,3,...,101}
a=2
a=5
250 mod 101 = -1
550 mod 101 = -1
a = 99
a = 100
9950 mod 101 = -1
10050 mod 101 = 1
∴ 101 adalah prima
d. Proses 1 untuk pengirim
1. Tentukan sebuah bilangan eA dengan syarat:
2 < eA < p-1 dan eA relatif prima dengan p-1
dipilih eA = 21
untuk membuktikan apakah 21 relatif prima dengan 101, maka
digunakan Euclidean GCD sebagai berikut :
100 mod 21 = 16
21 mod 16 = 5
16 mod 5 = 1
Universitas Sumatera Utara
11
5 mod 1 = 0
Sehingga GCD (21,100) = 1
2. Hitung dA sebagai invers dari eA sebagai berikut :
Pada tabel 2.1 dibawah ini diperlihatkan perhitungan nilai dA :
Tabel 2.1 Perhitungan nilai dA
1
dA * eA ≡1 (mod p -1)
2
42
3
63
81
⋮
dA
21
1
STOP, dA = 81
3. Tentukan pesan yang akan dikirim, lalu konversikan dengan tabel
ASCII.
Plaintext = “ANDIKA MULIA UTAMA”
M = 65 78 68 73 75 65 32 77 85 76 73 65 32 85 84 65 77 65
4. Enkripsi pesan dengan rumus C1 = MeA mod p . . . . . . . . . . . . . . . . . .(1)
Untuk A : C1 = 6521 mod 101 = 65
Untuk N : C1 = 7821 mod 101 = 37
Untuk D : C1 = 6821 mod 101 = 24
Untuk I
: C1 = 7321 mod 101 = 67
Untuk K : C1 = 7521 mod 101 = 74
Untuk A : C1 = 6521 mod 101 = 65
Untuk Space : C1 = 3221 mod 101 = 32
Untuk M : C1 = 7721 mod 101 = 45
Untuk U : C1 = 8521 mod 101 = 70
Untuk L : C1 = 7621 mod 101 = 47
Untuk I
: C1 = 7321 mod 101 = 67
Untuk A : C1 = 6521 mod 101 = 65
Untuk Space : C1 = 3221 mod 101= 32
Untuk U : C1 = 8521 mod 101 = 70
Universitas Sumatera Utara
12
Untuk T : C1 = 8421 mod 101 = 84
Untuk A : C1 = 6521 mod 101 = 65
Untuk M : C1 = 7721 mod 101 = 45
Untuk A : C1 = 6521 mod 101 = 65
5. Setelah didapat C1 = 65 37 24 67 74 65 32 45 70 47 67 65 32 70 84 65
45 65, kemudian dikirim kepada penerima.
e. Proses 1 untuk penerima
1. Terima Ciphertext dari Pengirim
2. Tentukan sebuah bilangan eB dengan syarat:
2 < eB < p-1 dan eB relatif prima dengan p-1
dipilih eB = 57
untuk membuktikan apakah 57 relatif prima dengan 101, maka
digunakan Euclidean GCD sebagai berikut :
100 mod 57 = 43
57 mod 43 = 14
43 mod 14 = 1
14 mod 1 = 0
Sehingga GCD (57,100) = 1
3. Hitung dB sebagai invers dari eB sebagai berikut :
Pada tabel 2.2 dibawah ini diperlihatkan perhitungan nilai dB :
Tabel 2.2 Perhitungan nilai dB
1
dB * eB ≡1 (mod p -1)
2
14
3
71
93
⋮
dB
57
1
STOP, dA = 93
Universitas Sumatera Utara
13
4. Hitung C2 = C1eB mod p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2)
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 37 : C2 = 3757 mod 101 = 58
Untuk 24 : C2 = 2457 mod 101 = 16
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 74 : C2 = 7457 mod 101 = 50
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 47 : C2 = 4757 mod 101 = 64
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 84 : C2 = 8457 mod 101 = 87
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 65 : C2 = 6557 mod 101 = 17
didapat C2 = 17 58 16 75 50 17 62 70 9 64 75 17 62 9 87 17 70 17
f. Proses 2 untuk pengirim
1. Terima C2 dari Penerima
2. Hitung C3 = C2dA mod p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(3)
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 58 : C3 = 5881 mod 101 = 97
Untuk 16 : C3 = 1681 mod 101 = 5
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 50 : C3 = 5081 mod 101 = 3
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 70 : C3 = 7081 mod 101 = 85
Untuk 9 : C3 = 981 mod 101 = 21
Universitas Sumatera Utara
14
Untuk 64 : C3 = 6481 mod 101 = 23
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 9 : C3 = 981 mod 101 = 21
Untuk 87 : C3 = 8781 mod 101 = 87
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 70 : C3 = 7081 mod 101 = 85
Untuk 17 : C3 = 1781 mod 101 = 17
Diapat C3 = 17 97 5 61 3 17 62 85 21 23 61 17 62 21 87 17 85 17
3. Kemudian dikirim C3 kepada penerima
g. Prorses 2 untuk penerima
1. Terima C3 dari pengirim
2. Dekripsi pesan dengan rumus M = C3dB mod p . . . . . . . . . . . . . . . (4)
Kemudian konversikan ke tabel ASCII.
Untuk 17 : M = 1793 mod 101 = 65
Untuk 97 : M = 9793 mod 101 = 78
Untuk 5 : M = 593 mod 101 = 68
Untuk 61 : M = 6193 mod 101 = 73
Untuk 3 : M = 393 mod 101 = 75
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 85 : M = 8593 mod 101 = 77
Untuk 21 : M = 2193 mod 101 = 85
Untuk 23 : M = 2393 mod 101 = 76
Untuk 61 : M = 6193 mod 101 = 73
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 21 : M = 2193 mod 101 = 85
Untuk 87 : M = 8793 mod 101 = 84
Untuk 17 : M = 1793 mod 101 = 65
Untuk 85 : M = 8593 mod 101 = 77
Universitas Sumatera Utara
15
Untuk 17 : M = 1793 mod 101 = 65
Didapat M = 65 78 68 73 75 65 32 77 85 76 73 65 32 85 84 65 77 65
maka Plaintext = “ANDIKA MULIA UTAMA”
2.2. Kompresi
Pada pembahasan dibawah ini akan dipaparkan mengenai kompresi terkait definisi
kompresi, penggunaan kompesi, dan Elias Gamma kompresi.
2.2.1. Definisi Kompresi
Kompresi data adalah suatu proses yang dapat mengubah sebuah aliran data masukan
(data asli) ke dalam aliran data yang lain (data yang dimampatkan) yang memiliki
ukuran yang lebih kecil (Salomon & Motta, 2010).
Kompresi merupakan sebuah seni untuk merepresentasikan informasi yang tersusun
lebih padat dari pada aslinya atau disebut terkompresi (Kodituwakku & Amarasinghe,
2010).
2.2.2. Penggunaan Kompresi
Secara umum terdapat dua golongan kompresi :
1. Kompresi Lossless
Algoritma kompresi Lossless adalah jika pada saat proses kompresi tidak ada data
yang hilang dan berhasil mengembalikan data dengan utuh. Kompresi ini cocok
untuk basis data, dokumen atau spreadsheet (Bhattacharjee et al, 2013).
Beberapa algoritma lossless compression yang sudah umum diterapkan antara
lain algoritma Huffman, Shannon – Fano, RLE LZ77, LZSS, Elias Delta dan Elias
Gamma. Dalam hal ini, Elias Gamma merupakan algoritma yang akan digunakan
dalam penelitian.
2. Kompresi Lossy
Algoritma kompresi Lossy secara umum digunakan untuk melakukan kompresi
gambar, suara dan juga video. Pada saat setelah kompresi akan ada data yang hilang.
Dengan kata lain, data yang kita kompresi tidak akan utuh seperti semula
(Bhattacharjee et al, 2013).
Universitas Sumatera Utara
16
Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa
faktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik
kompresi data tersebut (Bhattacharjee et al, 2013), yaitu :
1. Compression Ratio
Compression Ratio adalah rasio perbandingan antara file terkompresi dan file asli
�
2.
�
� � =
�
%
Ratio of Compression
Compression Factor adalah rasio antara file asli dan file setelah dikompresi
�
�
�
=
3. Space savings (sc)
Space savings adalah persentase selisih antara data yang belum dikompresi dengan
besar data yang dikompresi.
�
=
�−
�
ℎ
�
�
%
4. Waktu Kompresi dan Dekompresi
Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem
untuk melakukan proses kompresi dan dekompresi dari mulai pembacaan data
hingga proses encoding pada data tersebut. Semakin kecil waktu yang diperoleh
maka semakin efisien metode yang digunakan dalam proses kompresi dan
dekompresi itu.
2.2.3. Elias Gamma
Elias Gamma Code adalah sebuah algoritma kompresi yang dibuat oleh Peter Elias.
Untuk membuat tabel kode Elias Gamma, Elias menambah panjang kode dalam
unary(u). Dalam kode berikutnya, E ditambahkan pada panjang kode (M) dalam biner
Universitas Sumatera Utara
17
(β). Dengan demikian, Elias Gamma Code, yang juga untuk bilangan bulat positif,
sedikit lebih kompleks untuk dibangun (Salomon, 2007). Kode Elias Gamma tampak
pada tabel 2.3 dibawah ini :
Tabel 2.3 Kode Elia Gamma(Salomon, 20007)
N Kode Elias Gamma n
Kode Elias Gamma
1
1
10 0001010
2
010
11 0001011
3
011
12 0001100
4
00100
13 0001101
5
00101
14 0001110
6
00110
15 0001111
7
00111
16 000010000
8
0001000
17 000010001
9
0001001
18 000010010
Keterangan tabel 2.3 diatas :
n = nilai index karakter
Adapun aturan untuk mengkodekan sebuah bilangan dengan menggunakan Elias
Gamma (Salomon & Motta, 2010) adalah sebagai berikut :
1. Tulis bilangan (n) tersebut dalam bentuk biner (β),
2. Hitung jumlah bit β(n) sebagai (M) dan hapus satu bit β(n) paling kiri.
3. Bentuk kode unary u(M) adalah (M-1) dikali dengan bit nol ditambah bit satu
4. Gabungkan kode u(M) dan β(n).
Sebagai contoh ambil sebuah n = 13. Nilai biner dari 13 adalah β(13) = 1101.
Maka dihitung panjang biner n = 13 sebagai nilai M yaitu 4. Dihapus satu bit paling kiri
dari β(13) sehingga sama dengan 101. Dihitung nilai u(M) = 0001, gabungkan kode
u(M) dan β(13) yaitu 0001101 (Salomon & Motta, 2010).
Berikut ini adalah contoh perhitungan kompresi dengan menggunakan Elias
Gamma Code. Dalam hal ini, string yang akan dikompresi “ANDIKA MULIA
UTAMA”. Perhitungan seperti terlihat dibawah ini :
1. Dilakukan pembacaan string “ANDIKA MULIA UTAMA”
Universitas Sumatera Utara
18
2. Dilakukan pengurutan karakter dari tertinggi ke terendah menurut frekuensi
kemunculan karakter
3. Dilakukan konversi nilai karakter pada tabel ASCII kedalam bentuk bilangan
biner. Pada tabel 2.4 dibawah ini diperlihatkan perhitungan karakter :
Tabel 2.4 Perhitungan karakter sebelum kompresi
n
Char
ASCII
ASCII(2)
Bit
F
bit x F
1
A
65
1000001
8
5
40
2
I
73
1001001
8
2
16
3
Space
32
0100000
8
2
16
4
M
77
1001101
8
2
16
5
U
85
1010101
8
2
16
6
N
78
1001110
8
1
8
7
D
68
1000100
8
1
8
8
K
75
1001011
8
1
8
9
L
76
1001100
8
1
8
10
T
84
1010100
8
1
8
Jumlah
144 bit
Keterangan tabel 2.4 diatas :
n
= nilai index karakter
Char
= karakter yang muncul
ASCII = nilai ASCII karakter dalam desimal
ASCII(2) = nilai ASCII karakter dalam biner
F
= frekuensi kemunculan karakter
4. Proses kompresi algoritma Elias Gamma sebagai berikut :
a. Ubah bilangan n kedalam bentuk biner (n)
Untuk n = 1 kode biner = 12 (karakter A)
Untuk n = 2 kode biner = 102 (karakter I)
Untuk n = 3 kode biner = 112 (karakter Space)
Untuk n = 4 kode biner = 1002 (karakter M)
Untuk n = 5 kode biner = 1012 (karakter U)
Universitas Sumatera Utara
19
Untuk n = 6 kode biner = 1102 (karakter N)
Untuk n = 7 kode biner = 1112 (karakter D)
Untuk n = 8 kode biner = 10002 (karakter K)
Untuk n = 9 kode biner = 10012 (karakter L)
Untuk n = 10 kode biner = 11002 (karakter T)
b. Dihitung panjang bilangan biner | (n) | sebagai M dan dihapus satu bit
paling kiri dari (n). Pada tabel 2.5 dibawah ini diperlihatkan perhitungan
panjang biner
Tabel 2.5 Perhitungan panjang biner
N
Char
M
1
A
1
{}
2
I
2
0
3
Space
2
1
4
M
3
00
5
U
3
01
6
N
3
10
7
D
3
11
8
K
4
000
9
L
4
001
10
T
4
100
(n)
c. Menghitung kode unary u(M) dengan menggunkan rumus u(M) = (M1)*”0”+”1” dan kemudian membentuk kode Elias Gamma dengan
menggabungkan u(M) + (n). Perhitungan u(M) seperti terlihat pada tabel
2.6 dibawah ini :
Tabel 2.6 Perhitungan u(M) dan kode Elias Gamma
n
char
(n)
M
u(M) = (M-1)*”0”+”1”
Elias Gamma code
1
A
1
{}
1
1
2
I
2
0
01
010
Space 2
1
01
011
00
001
00100
3
4
M
3
Universitas Sumatera Utara
20
n
char
M
(n)
u(M) = (M-1)*”0”+”1”
Elias Gamma code
5
U
3
01
001
00101
6
N
3
10
001
00110
7
D
3
11
001
00111
8
K
4
000
0001
0001000
9
L
4
001
0001
0001001
10
T
4
010
0001
0001010
Sehingga didapat hasil komresi per karakter string sebagai berikut :
A N
D
I
K
A Sp
M
U
L
I A Sp
U
1 00110 00111 010 0001000 1 011 00100 00101 0001001 010 1 011 00101
T
A M
A
0001010 1 00100 1
5. Proses dekompresi Elias Gamma sebagai berikut :
a. Masukan kode Elias Gamma karakter n sebagai E i
b. Ambil jumlah digit 0 sebelum digit 1 pertama Ei sebagai N
c.
Ambil bit biner setelah digit 1 sebagai bilangan bulat desimal L
d. Menghitung keluaran karakter n dengan menggunakan n = 2n + L
Untuk E(1) = 1 maka n = 20 + 0 = 1 (karakter A)
Untuk E(2) = 010 maka n = 21 + 0 = 2 (karakter I)
Untuk E(3) = 011 maka n = 21 + 1 = 3 (karakter Space)
Untuk E(4) = 00100 maka n = 22 + 0 = 4 (karakter M)
Untuk E(5) = 00101 maka n = 22 + 1 = 5 (karakter U)
Untuk E(6) = 00110 maka n = 22 + 2 = 6 (karakter N)
Untuk E(7) = 00111 maka n = 22 + 3 = 7 (karakter D)
Untuk E(8) = 0001000 maka n = 23 + 0 = 8 (karakter K)
Untuk E(9) = 0001001maka n = 23 + 1 = 9 (karakter L)
Untuk E(10) = 0001010 maka n = 23 + 2 = 10 (karakter T)
Universitas Sumatera Utara
21
2.3. Three-Pass Protocol
Three-Pass Protocol adalah sebuah skema kerja yang memungkinkan dua orang
melakukan pertukaran pesan tanpa melakukan pertukaran kunci enkripsi. Protokol ini
pertama kali dikembangkan oleh Adi Shamir pada tahun 1980 ( Hasdiana,2015).
Three-Pass Protocol merupakan suatu cara yang memungkinkan dua orang melakukan
penguncian pesan rahasia secara ganda dengan tetap merahsiakan kunci masing –
masing (Kanamori et al,2009).
Pada penjelasan (Kanamori,2009), terdapat tiga tahap pertukaran pesan dalam
skema Three-Pass Protocol. Berikut adalah cara kerja Three-Pass Protocol:
1. Alice sebagai pengirim pesan melakukan enkripsi pesan dengan kunci pribadi
miliknya. Alice kemudian mengirimkan pesan yang telah dienkripsi (� ) kepada
penerima pesan, yaitu Bob.
2. Bob menerima � dan kemudian melakukan enkripsi � menggunakan kunci
pribadi miliknya. Bob kemudian mengirimkan pesan � yang telah dienkripsi
(� ) kepada Alice.
3. Alice yang menerima � kemudian mendekripsikan pesan � menggunakan
kunci pribadi miliknya. Alice kemudian mengirimkan pesan � yang telah
didekripsi (� ) kepada Bob. Selanjutnya Bob melakukan dekripsi pesan � .
Hasil dekripsi pesan � tersebut merupakan plaintext yang dikirimkan Alice.
Pada pemaparan (sujiono,2016), cara kerja Three-Pass Protocol tersebut dapat
diilustrasikan seperti pada gambar 2.4 :
Gambar 2.4 Skema Kerja Three-Pass Protocol
Universitas Sumatera Utara
22
Keterangan gambar 2.4 pada halaman 21:
: kunci enkripsi oleh Alice
: kunci dekripsi oleh Alice
: kunci enkripsi oleh Bob
: kunci dekripsi oleh Bob
2.4. Black Box Testing
Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari
perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan
pengetesan pada spesifikasi fungsional program (Pressman, 2012).
Black Box menentukan perilaku sistem atau bagian sistem. Cara ini melihat
bagaiman sistem merespon user dalam menerima inputan yang berbeda (Pressman,
2012).
2.5. Penelitian yang Relevan
Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan oleh
penulis antara lain adalah sebagai berikut:
- Arjana, dkk (2012) mengimplementasikan penggunaan algoritma Vignere Cipher
untuk mengamankan data pelanggan. Penelitian tersebut membuktikan bahwa
algoritma Vignere Cipher berhasil meningkatkan keamanan data dan keakuratan
informasi.
- Haramaini (2014) telah berhasil mengimplementasikan algoritma One Time Pad
dengan menggunakan Three-Pass Protocol. Pada penelitian tersebut dijelaskan
bahwa algoritma One Time Pad tidak cukup aman jika diimplementasikan
dengan Three-Pass Protocol sehingga diperlukan sedikit pengembangan yang
dilakukan untuk meningkatkan keamanan algoritma ini. Pengembangan yang
dilakukan peneliti adalah dengan menambah panjang range bilangan prima
yang akan diacak, sehingga perulangan kunci yang digunakan akan semakin
sulit untuk ditebak.
- Implementasi algoritma One Time Pad dapat menjaga keamanan dan kerahasiaan
data yang tersimpan pada sebuah aplikasi berbasis web. Selain itu,
pengimplementasian algoritma ini juga mampu memastikan bahwa user yang
Universitas Sumatera Utara
23
menggunakan aplikasi adalah user yang benar-benar memiliki wewenang untuk
mengakses informasi tersebut (Mulyono & Rodiah, 2013).
- Sebayang (2014) berhasil mengimplementasikan kombinasi dua algoritma
kriptografi klasik pada Three-Pass Protocol, kedua algoritma tersebut adalah
Beaufort Cipher dan Affine Cipher . Penelitian ini membuktikan bahwa
mekanisme Three-Pass Protocol dapat diimplementasikan menggunakan dua
algoritma sekaligus.
- Widiasari (2012) mengombinasikan algoritma kriptografi Advanced Encryption
Standard (AES) dan One Time Pad dalam mengamankan data. Kombinasi kedua
algoritma menghasilkan keamanan data yang baik dengan ukuran file yang sama
baik sebelum maupun setelah proses enkripsi.
- Hardiyana (2013) berhasil mengimplementasikan algoritma Massey-Omura
dengan teknik steganografi kombinasi END OF FILE (EOF) dan FIRST OF
FILE (FOF) untuk keamanan data.
Universitas Sumatera Utara