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 dA
dA * eA ≡1 (mod p -1)
1
21
2
42
3
63 ⋮
81
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 dB
dB * eB ≡1 (mod p -1)
1
57
2
14
3
71 ⋮
93
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.
𝒅𝒂𝒕𝒂 𝒔𝒆𝒃𝒆𝒍𝒖𝒎 𝒅𝒊𝒌𝒐𝒎𝒑𝒓𝒆𝒔𝒊
𝑋 100%
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.
𝑠𝑝𝑎𝑐𝑒 𝑠𝑎𝑣𝑖𝑛𝑔 =
𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑎𝑠𝑙𝑖 − 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑥 100% 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑎𝑠𝑙𝑖
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
(n)
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
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 Ei 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 (𝐶1 ) kepada penerima pesan, yaitu Bob. 2. Bob menerima 𝐶1 dan kemudian melakukan enkripsi 𝐶1 menggunakan kunci pribadi miliknya. Bob kemudian mengirimkan pesan 𝐶1 yang telah dienkripsi (𝐶2 ) kepada Alice. 3. Alice yang menerima 𝐶2 kemudian mendekripsikan pesan 𝐶2 menggunakan kunci pribadi miliknya. Alice kemudian mengirimkan pesan 𝐶2 yang telah didekripsi (𝐶3 ) kepada Bob. Selanjutnya Bob melakukan dekripsi pesan 𝐶3 . Hasil dekripsi pesan 𝐶3 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