• Tidak ada hasil yang ditemukan

Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol"

Copied!
93
0
0

Teks penuh

(1)

PERSONAL DATA

Full Name : Andika Mulia Utama

Nick Name : Dika

Place/ Date of Birth : Bahung Kahean, 09 Agustus 1994

Sex : Male

Religion : Islam

Nationality : Indonesia

Address : Jl. Sei Asahan No 8/22 Medan Baru

Mobile Phone : 085225372825

E-mail : [email protected]

EDUCATION

Bachelor of Computer Science

University of Sumatera Utara, Medan 121401006

Higher Secondary Education SMAN 1Dolok Batu Nanggar 2009-2012

Secondary Education

SMP N 1 Dolok Batu Nanggar 2006-2009

Primary Education SD NEGERI 094127 2000-2006

Programming : C++, Java, PHP,HTML

Database : MySQL

IDE :Eclipse, Dreamweaver,Sharp Developh

Software :Adobe Photoshop,Office,Operating System

Other :Public Speaking, Packet Tracer, Project Libre

(2)

No Instance Position Year

1 IKLC(Ilmu computer

Laboratory Center)

2 TOEFL PREPARATION 2015

3 4 5

ORGANIZATIONAL EXPERIENCES

No Organization Position Year

1 Ilmu Komputer Laboratory Center (IKLC) Ketua 2015-2016 2 SABUN(Sahabat Beasiswa Untuk Negeri) Ketua UMUM 2013-2014 3 UKMI AL KHUWARIZMI Dewan Konsultatif 2015-2016 4 Departemen Seleksi Asisten IKLC Ketua Divisi 2013 5 Departemen Mutu Asisten IKLC Ketua Divisi 2014 - 2015 6 SGC (Smart Generetion Community) Staf PSDM 2014

7 COM A 2012 Ketua Kelas 2012-2016

8 MENKOMINFO Asrama PPSDMS NF Kepala Departemen 2014

SEMINARS

No. Seminar Year

1 Seminar Motifasi Notes From Katar 2012

2 Seminar Nasional Kewirausahaan 2013

3 Seminar Internasional Youth Convention Center 2014

4 Seminar Nasional LPPPM 2013

5 Seminar Nasional Senarai 2014

6 Seminar Public Speaking 2015

(3)

a. Fungsi Buka File

void Word_text(string filepath){

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

object filenameO = filepath;

object objFalse = false;

object objTrue = true;

object missing = System.Reflection.Missing.Value;

object emptyData = string.Empty;

try{

Microsoft.Office.Interop.Word.Document aDoc =

wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, ref missing, ref missing, ref missing, ref missing, ref missing,ref missing, ref missing, ref objTrue, ref missing, ref missing,ref missing, ref missing);

aDoc.ActiveWindow.Selection.WholeStory();

b. Fungsi Tulis File

(4)

object objTrue = true;

object missing = System.Reflection.Missing.Value; object emptyData = string.Empty;

aDoc.SaveAs(ref filenameO, ref objFalse, ref objFalse,ref missing, ref missing, ref missing, ref missing, ref missing ,ref missing, ref missing, ref objTrue, ref missing, ref mi ssing,ref missing, ref missing);

aDoc.Application.ActiveDocument.Close(WdSaveOptions.wdS aveChanges, ref missing, ref missing);

}

d = Inverse_Modular(e, BigInteger.Subtract(this.p, 1)); }while(BigInteger.GreatestCommonDivisor(e,BigInteger.Subt ract(this.p, 1)) != 1 || (BigInteger.Remainder

(BigInteger.Multiply(d, e), BigInteger.Subtract(this.p,1)))

c_prima = BigInteger.Abs(new BigInteger(rnd)); }while(!Lehmann(c_prima));

return c_prima; }

// Acak Kunci Enkripsi

(5)

rng.GetBytes(rnd);

c_e = BigInteger.Abs(new BigInteger(rnd));

}while(c_e > p || BigInteger.GreatestCommonDivisor(c_e, p) != 1);

return c_e; }

// Pengecekan Prima

private bool Lehmann(BigInteger p){ BigInteger test;

int putaran = 0; do{

rng.GetBytes(rnd);

test = BigInteger.Remainder(BigInteger.Abs(new BigInteger(rnd)), BigInteger.Subtract(p, 1));

test = (BigInteger)BigInteger.ModPow(test, BigInteger.Divide(BigInteger.Subtract(p, 1),2), p);

if (test != 1 && BigInteger.Subtract(test, p) != -1 return false;

putaran++;

}while(putaran < 10); return true; }

// Acak Kunci Dekripsi

private BigInteger Inverse_Modular(BigInteger a, BigInteger b){

q = BigInteger.Divide(a, b); temp = b;

b = BigInteger.Subtract(a, BigInteger.Multiply(q, b)); a = temp;

temp = x2;

x2 = BigInteger.Subtract(x1, BigInteger.Multiply(q, x2)); x1 = temp;

temp = y2;

y2 = BigInteger.Subtract(y1, BigInteger.Multiply(q, y2)); y1 = temp;

}

x1 = x1 > 0 ? x1 : BigInteger.Add(modulo, x1); return x1;

(6)

return BigInteger.ModPow(p_or_c, e, p); }

// Perhitungan Dekripsi

public BigInteger dekripsi(BigInteger c){ return BigInteger.ModPow(c, d, p); }

}

d. Fungsi Elias Gamma

private static string e_elias_gamma(int i){ if (i == 1) adLeft(N_zero, '0'));// left padding sebanyak n zero return sb.ToString();

} // Kompresi

public static byte [] kompresi(byte [] s_values){

flag = 0;

List<byte> hasil = new List<byte>();

byte bitcount = 0, bitbuffer = 0;

values = s_values;

susun_char();

encoding();

foreach (byte val in values){

foreach(char ch in eg_encoding[val]){

(7)

}

}

if (bitcount > 0)

{

byte cagak = Convert.ToByte(new StringBuilder()

.Append(1).Append('0', bitcount).ToString(), 2);

bitbuffer |= cagak;

flag = 1;

hasil.Add(bitbuffer);

}

return hasil.ToArray();

}

//Dekomresi

public static byte [] dekompresi(byte [] s_values){

List<byte> hasil = new List<byte>();

int i = 0;

StringBuilder sb = new StringBuilder();

for (i = 0;i < s_values.Length - 1;i++){

sb.Append(Convert.ToString(s_values[i], 2).PadLeft(8, '0'));

}

if (flag == 1)

sb.Append(Convert.ToString(s_values[i], 2).

Remove(0, 1));

else

sb.Append(Convert.ToString(s_values[i], 2).PadLeft(8, '0'));

decoding(hasil, sb);

return hasil.ToArray();

(8)

DAFTAR PUSTAKA

Antoni, .2015. Analisis Hasil Kompresi Data Teks Pada Algoritma Elias Gamma Code, Elias Delta Code Dan Levenstein Code. Skripsi. Universitas Sumatera Utara.

Bhattacharjee, A.K., Bej, T. & Agarwal, S. 2013. Comparison study of lossless data compression algorithms for text data. International Journal of Computer

Engineering pp 15 – 19.

Dennis, Alan., Wixom, B.H. & Roth R.M. 2012. System Analysis and Design. 5th

Edition. John Wiley & Sons, Inc: United States of America.

Hasdiana, .2015. Hill Cipher pada Skema Shamir's Three Pass Protocol. Skripsi. Universitas Sumatera Utara.

Hardiyana, Nadya S. 2013. Implementasi algoritma kriptografi Massey-Omura dengan teknik steganografi kombinasi end of file (EOF) dan first of file (FOF) untuk keamanan data. Skripsi. Universitas Sumatera Utara

Kanamori, Y., Yoo, Seong-Moo.2009.Quantum Three-Pass Protocol: Key Distribution Using Quantum Superposition States. International Journal of Network Security & Its Applications.Vol 1 No 2

Kodituwakku, S.R. & Amarasinghe, U.S. 2010. Comparison of Lossless Data Compression Algorithms for Text Data. Journal of Computer Science and

Engineering 4 : 416 – 426.

Kromodimoeldjo, Sentot. 2010. Teori dan Aplikasi Kroptografi. SPK IT Konsulting. Lubis, W.A. 2015. Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma

Kompresi Data Dengan Algoritma Elias Gamma Code. Skripsi. Universitas Sumatera Utara.

Mollin, R. 2007. An Introduction to Cryptography: Discrete Mathematics and Its

Applications. Kenneth H. Rosen. 2nd Edition. Taylor & Francis Group, LLC:

New York.

Pressman, Roger S. 2012. Rekayasa Perangkat Lunak – Buku Satu. Edisi Ketujuh.

ANDI : Yogyakarta.

(9)

Sadikin, Rifki. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Andi Offset: Yogyakarta.

Salomon, D. 2007. Variable-length Codes for Data Compression. Springer-Verlag : London.

Salomon & Motta . 2010. Handbook of Data Compression. Fifth Edition, Computer Science Department. California State University, Northridge, Springer-Verlag : London.

Schneier, B. 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in

C. 2nd Edition. New York.

Sebayang, A.M.S. 2014. Implementasi Kombinasi Beaufort Cipher dan Affine Cipher pada Three-Pass Protocol. Skripsi. Universitas Sumatera Utara.

Siregar, S.R. 2016. Perbandingan Algoritma Fibonacci Code dan Algoritma Inverted Elias Gamma Code Dalam Kompresi File Teks. Skripsi. Universitas Sumatera Utara.

Sujiono, D.M.R. 2016. Implementasi three pass protocol dengan kombinasi algoritma beaufort cipher dan one time pad untuk pengamanan data. Skripsi. Universitas Sumatera Utara.

Whitten, J.L. & Bentley, L.D. 2007. System Analysis and Design Methods. 7th Edition. McGraw-Hill/Irwin: New York.

(10)

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsitem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut dalam mencapai tujuan (Whitten & Bentley 2007)

Pada penjelasan (Dennis et al.2012) menyebutkan bahwa terdapat beberapa tahap yang dilakukan pada proses analisis sistem, yaitu :

1. Understand, yaitu memahami kinerja sistem yang telah ada.

2. Indentify, yaitu mengidentifikasi masalah.

3. Analyze, yaitu menganalisa kebutuhan dari sistem yang akan dibangun.

Tahap understand adalah tahap yang dapat dilewatkan dalam proses analisis sistem jika sistem yang akan dirancang belum pernah dibuat sebelumnya atau sistem yang ada sebelumnya sudah tidak relevan lagi dengan sistem yang dibangun (Sujiono, 2016). Dijelaskan (sujiono, 2016) bahwa tahap kedua yang merupakan identifikasi masalah bertujuan untuk mengidentifikasi dan mendeskripsikan penyebab masalah yang akan diselesaikan oleh sitem. Tahap ketiga yaitu tahap analisa kebutuhan sistem. Dalam hal ini, akan dihasilkan daftar kebutuhan sistem yang bersifat fungsional dan non fungsional yang akan digunakan pada proses perancangan sistem (Sujiono, 2016).

3.1.1. Understand

Understand berkaitan dengan sistem yang telah ada sebelumnya. Tahap ini dikerjakan

(11)

Pada penelitian ini, sistem yang akan dibangun merupakan sistem yang belum pernah dibuat sebelumnya sehingga tidak akan dibahas lebih lanjut. Tahap understand tidak akan dibahas lebih dalam dalam penelitian kali ini yang berjudul Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada simulasi Three-Pass Protocol.

3.1.2. Identify

Pada tahap identifikasi masalah (identify) akan dihasilkan deskripsi penyebab dari masalah yang akan diselesaikan oleh sistem. Masalah-masalah yang diperoleh tersebut kemudian digambarkan dalam sebuah diagram yang dikenal dengan sebutan Diagram Ishikawa atau disebut juga Fishbone Diagram. Diagram ini merupakan diagram yang telah banyak digunakan oleh para analis sistem untuk mengidentifikasi, menganalisadan memecahkan masalah(Whitten & Bentley, 2007).

Diagram Ishikawa berbentuk seperti ikan yang strukturnya terdiri dari kepala ikan (fish’s head) dan tulang-tulang ikan (fish’s bones). Nama atau judul dari masalah yang diidentifikasi terletak pada bagian kepala ikan. Sedangkan tulang-tulang ikan menggambarkan penyebab-penyebab masalah tersebut (Whitten & Bentley, 2007). Berikut ini perancangan Diagram Ishikawa untuk masalah pada penelitian ini :

Gambar 3.1 Diagram Ishikawa Masalah penelitian. Jalur pengiriman pesan dan kunci yang mungkin dimasuki oleh penyusup

Kemungkinan terjadinya kedala pengiriman pesan diakibatkan data yang besar

Pengirim dan penerima ingin pertukaran informasi yang efisien dan aman

Perlu keamanan

Belum adanya aplikasi desktop yang mengombinasikan

(12)

Pada gambar 3.1 dihalaman sebelumnya dapat dilihat bahwa terdapat empat kategori pada penelitian ini. Berkaitan dengan pengguna (users), media/alat yang terlibat (materials), metode yang digunakan(methods) dan sistem (system). Setiap detail penyebab masalah tersebut digambarkan dengan tanda panah yang mengarah ke masing

– masing kategori.

Gambar 3.1 dapat dilihat bahwa akar permasalhan yang terjadi adalah adanya pihak ketiga yang ingin melakukan pencurian informasi dan berkaitan dengan besarnya data dalam pengiriman informasi tersebut. Solusi yang ditawarkan adalah dengan memanfaatkan algoritma kriptografi asimetris dengan kombinasi algoritma kompresi untuk mengefisiensikan transfer data.

3.1.3. Analyze

Tahap analyze adalah tahap yang dilakukan setelah tahap identifikasi masalah. Tahap ini bertujuan untuk mengumpulkan kebutuhan sistem yang disebut dengan requirement. Daftar requirement berdasarkan kebutuhan yang harus dipenuhi sebuah sistem dapat dibagi menjadi dua jenis, yaitu functional requirement (kebutuhan fungsional) dan Non-functional requirement (kebutuhan nonfungsional) (Dennis et al., 2012).

3.1.3.1.Functional Requirement

Kebutuhan fungsional sistem mendeskripsikan fungsi-fungsi yang harus dilakukan oleh sebuah sistem untuk mencapai tujuan (Whitten & Bentley 2007).Functional

Requirement (kebutuhan fungsional) dari sebuah sistem sebagai “kemampuan dari

sebuah produk atau hal-hal yang mampu dilakukan oeh sistem untuk memenuhi kebutuhan pengguna” (Sujiono,2016). Pada penelitian ini kebutuhan sistem yang diperlukan untuk mengimplementasikan algoritma Massey-Omura dan algoritma Elias Gamma pada simulasi Three-Pass Protocol terlihat pada tabel 3.1 dibawah ini.

Tabel 3.1 Tabel Kebutuhan Fungsional Sistem

No. Kebutuhan Fungsional Deskripsi

1. Menerima input plaintext Sistem mencari dan membaca file teks yang

(13)

yang digunakan atau sistem menerima input plaintext dari pengguna secara manual.

2. Fungsi pembangkit kunci Kunci dibangkitkan oleh sistem dengan

melakukan acak bilangan prima.

3. Mengenkripsi pesan Plaintext yang dienkripsi berupa karakter text

dengan menggunakan kunci yang telah dibangkitkan. Sistem melakukan enkripsi menggunakan algoritma Massey-Omura.

4. Mendekripsi pesan Ciphertext yang didekripsi berupa karakter text

yang telah diterima. Sistem melakukan dekripsi menggunakan algoritma Massey-Omura.

5. Mengkompresi pesan Sistem melakukan kompresi pesan dengan

menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi sebelum data dikrimkan kepada penerima.

6. Mendekompresi pesan Sistem melakukan dekompresi pesan dengan

menggunakan algoritma Elias-Gamma. Sistem melakukan kompresi setelah data diterima.

3.1.3.2.Nonfunctional Requirement

Kebutuhan non fungsional mendeskripsikan fitur lain seperti karakteristik, batasan sistem, performa, dokumentasi dan yang lain agar sistem berjalan sukses (Whitten & Bentley 2007). Pada tabel 3.2 dibawah ini akan dipaparkan kebutuhan nonfungsional sistem pada penelitian.

Tabel 3.2 Tabel kebutuhan Nonfungsional Sistem

No. Kebutuhan Nonfungsional Deskripsi

1. User Friendly Sistem menggunakan desain yang mudah

(14)

2. Dokumentasi Sistem yang akan dibangun memiliki panduan penggunaan.

3. Performa Sistem dapat menyimpan hasil dari fungsi

kriptografi

4. Kontrol

Sistem yang akan dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.

5. Hemat Biaya

Sistem dibangun dengan memanfaatkan

perangkat lunak freeware yang dapat

digunakan dan disebarluaskan dengan bebas.

3.1.3.3.Analisis Kerja Algoritma

Pada penelitian ini, analisis kerja algortima program meliputi perancangan sistem secara umum dan perancangan algoritma. Disajikan melalui flowchart algoritma dan pseudocode.

3.1.3.3.1. Diagram Alir Sistem

(15)
(16)

3.1.3.3.2. Diagram Alir Massey-Omura

Pada gambar 3.3. dibawah ini menunjukkan diagram alir algorima Massey-Omura.

Gambar 3.3. Diagram alir algoritma Massey-Omura.

(17)

gmabar terlihat bahwa proses enkripsi diawali dengan input plaintext yang dilakukan pengirim pesan. Kemudian, dilakukan pembangkitan kunci dan setelah itu dilakukan enkripsi sehingga terbentuk Ciphertxt. Proses dekripsi diawali dengan melakukan input ciphertext (C2) oleh pengirim pesan. Kemudian dilakukan dekripsi dengan

menggunakan kunci yang telah dibangkitkan sehingga menghasilkan ciphertext (C3) untuk kemudian dikirimkan ke penerima pesan. Setelah itu, penerima pesan melakukan dekripsi kembali untuk mendapatkan plaintext..

3.1.3.3.3. Pseudocode Massey-Omura

Pada algoritma Massey-Omura terdiri dari dua fungsi, yaitu fungsi enkripsi dan fungsi dekripsi. Pseudocode untuk fungsi enkripsi seperti terlihat dibawah ini :

eA = Kunci Enkripsi prime = bilangan prima

arrayint [] = ascii tiap karakter dari plain text for (i = 0; i <= arrayint.lenght -1; i++)

n = ModPow (arrayint [i], Key, prime) arrayint [i] = n

return arrayint

Proses enkripsi dilakukan setelah terdapat Paintext, bilangan prima p, kunci

enkripsi eA. Proses enkripsi dilakukan melalui perhitungan C = MeA mod p dimana m

merupakan nilai ascii pada karakter plaintext yang telah di enkripsi. Hasil perhitungan akan kembali dimasukkan kedalam array.

dA = Kunci dekripsi prime = bilangan prima

enkripted [] = ciphertext dalam bentuk array for (i = 0; i <= enkripted.lenght -1; i++)

n = ModPow (enkripted [i], Key, prime) arrayint [i] = n

return arrayint

Proses dekripsi dilakukan dengan melakukan perhitungan M = CdA mod p dimana

(18)

3.1.3.3.4. Diagram Alir Elias Gamma

Gambar 3.4 dibawah ini merupakan diagram alir algoritma Elias Gamma.

Gambar 3.4 Diagram alir algoritma Elias Gamma

Pada gambar 3.4 diatas memperlihatkan proses kompresi dan dekompresi algoritma Elias Gamma. Proses kompresi diawali dengan melakukan input bilangan positif n.

(19)

dilakukan penghitungan panjang digit pada bilangan biner. Setelah itu, dihitung unary dan dilakukan penggabungan kode unary dengan biner. Sehingga dihasilkan output kode Elias Gamma. Setelah itu proses dekompresi. Pada proses ini diawali dengan melakukan input kode Elias Gamma. Kemudian proses dekompresi dilakukan dengan mengambil jumlah digit 0 sebelum digit 1 pertama sebagai N dan setelah digit 1 pertama

sebagai bilangan bulat L. Langkah selanjutnya mengghitung n = 2N+L sehingga

didapatkan karakter n.

3.1.3.3.5. Pseudocode Elias Gamma

Pada penelitian ini menggunakan algoritma Elias Gamma. dibawah ini ditunjukkan pseudocode kompresi.

Elias_gamma (s)

Freq <= CountFreq (s) charSet <= GetCharset (s) t <= CharSet.Length

(20)

3.1.3.3.6. Diagram Alir Bangkitkan Prima

Pada gambar 3.5 dibawah ini di perlihatkan diagram alir bangkitkan bilangan prima

Gambar 3.5 Diagram Alir Bangkitkan Prima

(21)

3.1.3.3.7. Pseudocode Bangkitkan Prima

Berikut ini ditampilkan pseudocode untuk melakukan generate bilangan prima.

Generate_prima : a <= random bilangan

a = a mod 2 == 1 ? a : a + 1 while (!lehmann(a))

goto Generate_prima return a

3.1.3.3.8. Diagram Alir Lehmann

Pada penelitian ini, algoritma lehman digunakan untuk melakukan pengecekan bilangan

yang diacak adalah benar – benar bilangan prima. Pada gambar 3.6 berikut ini

ditampilkan diagram alir algoritma Lehmann.

Gambar 3.6 Diagram Alir Algoritma Lehmann

(22)

bilangan p sebagai a. Menghitung L = a(p-1)/2

mod p. Jika L = 1 atau L = -1, maka p adalah prima.

3.1.3.3.9. Pseudocode Lehmann

Dibawah ini diperlihatkan pseudocode algoritma Lehmann Bool lehmann (p)

Nilai <= random()

for (i = 0 ; i < 5; i++) lakukan :

n <= nilai.next(2,p-1) L <= ModPow(n,(p-1)/2,p) Jika L != 1 dan L != -1

Return False Return True

3.1.3.3.10. Bangkitkan Kunci Massey-Omura

Pada penggunaan algoritma Massey-Omura memerlukan pembangkitan kunci yang digunakan untuk perhitungan enkripsi dan dekripsi pesan. Pada gambar 3.7 dibawah ini dideskripsikan dalam diagram alir generate kunci

Gambar 3.7 Diagram Alir Bangkitkan Kunci Enkripsi-Dekripsi.

(23)

acak bilangan e dimana e lebih besar dari 2 dan lebih kecil dari p-1. Kemudian menghitung GCD antara e dengan p-1. Hasil GCD harus sama dengan satu, agar bilangan p-1 dan e adalah relatif prima.

3.1.3.3.11. Pseudocode Bangkitkan Kunci

Pada generate kunci Massey-Omura terdapat proses untuk melakukan generate kunci enkripsi dan dekripsi. Telah digambarkan sebelumnya pada gambar 3.11 diagram alir pada generate kunci. Berikut ini ditunjukkan pseudocode generate kunci enkripsi dan dekripsi.

Pseudocode Kunci Enkripsi : p = bilangan prima

(24)

3.1.3.4.Implementasi Diagram UML

UML atau Unified Modelling Language adalah pendekatan analisis dan desain sistem berorientasi objek. Pendekatan ini memandang sistem sebagai kumpulan-kumpulan objek, dimana objek tersebut dapat berupa data maupun proses. Terdapat beberapa diagram pada UML, yaitu use case diagram, class diagram dan sequence diagram (Dennis, et al. 2012).

3.1.3.4.1. Use Case Diagram

Diagram use case digunakan untuk menggambarkan hubungan atau interaksi antara sistem dengan pengguna. Diagram ini menggambarkan sebagian besar kebutuhan yang telah dipaparkan sebelumnya. Pada gambar 3.8 berikut dirincikan kebutuhan fungsional pada tabel 3.1

Gambar 3.8 Diagram Use Case Kebutuhan Fungsional

(25)

saling berhubungan satu sama lain. Jalanya sistem diawali dengan input plaintext, kemudian membangkitkan kunci algoritma, selanjutnya sistem melakukan proses enkripsi, kompresi, dekompresi dan dekripsi secara berurutan sehingga diperoleh plaintext kembali.

3.1.3.4.2. Sequence Diagram

Whitten (dalam Sebayang, 2014) menyebutkan bahwa sequence diagram adalah suatu diagram yang menggambarkan interaksi antar objek pada sistem dalam sebuah urutan waktu atau rangkaian waktu, seperti pada gambar 3.9 dibawah ini :

Gambar 3.9 Sequence Diagram sistem.

(26)

diwakilkan dengan tanda anak panah sedangkan respon sistem kepada pengguna diwakilkan dengan simbol anak panah putus-putus.

3.1.3.4.3. Activity Diagram

Activity Diagram digunakan untuk menggambarkan reaksi antara user dengan sistem.

Pada gambar 3.10 dibawah ini merupakan Activity Diagram pada sistem

(27)

3.2. Perancangan Sistem

Tahap perancangan sistem (system design) adalah tahap yang dilakukan setelah tahap analisis sistem (system analysis). Tujuan utama dari tahap perancangan adalah merancang bagaimana sistem akan dibangun (Dennis, et al. 2012). Pada penelitian ini, sistem akan dirancang dengan tahapan perancangan yaitu antarmuka sistem (System interface design).

3.2.1. Perancangan Antarmuka Sistem

Fauzana (dalam sujiono,2016) Perancangan antarmuka sistem akan digambarkan melalui mock-up. mock-up adalah sebuah rancangan sistem yang tidak lengkap dan berskala kecil yang digunakan sebagai tampilan desain awal. Sistem dirancang memiliki empat mock-up, yaitu halaman baranda, teori singkat, simulasi TPP dan tentang aplikasi.

3.2.1.1.Halaman Beranda

Halaman beranda adalah halaman pertama muncul pada sistem setelah dijalankan. Pada halaman ini berisi nama sistem, logo universitas dan nama pembuat sistem. Halaman beranda dapat dilihat pada gambar 3.11.

Gambar 3.10 Perancangan Antarmuka Halama Beranda Keterangan gambar 3.11 :

1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada

sistem.

2. Label digunakan untuk judul sistem

3

4

Beranda Teori Singakat Simulasi Tentang Aplikas

1

(28)

3. Picturebox digunakan untuk logo universitas

4. Label diunakan nama pembuat sistem

3.2.1.2. Halaman Teori Singkat

Halaman teori singkat berisi teori singkat mengenai algoritma Massey-Omura, algoritma Elias Gamma, dan Three-Pass Protocol. Halaman teori singkat dapat dilihat pada gambar 3.12

Gambar 3.12 Perancangan Antarmuka Halaman Teori Singkat Keterangan :

1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada

sistem.

2. Label digunakan untuk judul algoritma Massey-Omura.

3. Label digunkan untuk judul algoritma Elias Gamma.

4. Label digunakan untuk judul simulasi Three-Pass Protocol

5. Rich Text Box digunakan untuk teori singkat mengenai algoritma

Massey-Omura.

6. Rich Text Box digunakan untuk teori singkat mengenai algoritma Elias Gamma.

7. Rich Text Box digunakan untuk teori singkat mengenai simulasi Three-Pass

Protocol.

Beranda Teori Singakat Simulasi Tentang Aplikas

1

Massey-Omura Elias Gamma Three-Pass Protocol

2 3 4

(29)

3.2.1.3.Halaman Simulasi

Halaman simulasi sistem merupakan halaman yang diguakan untuk melakukan proses enkripsi pesan, dekripsi pesan, kompresi pesan dan dekompresi pesan menggunakan algoritma Massey-Omura algortima Elias Gamma pada simulasi Three-Pass Protocol. Ditampilkan pada gambar 3.13 berikut ini.

Gambar 3.13. Perancangan antarmuka halaman simulasi Keterangan gambar:

1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada

sistem.

2. Text Box digunkan untuk menampilkan nama file yang digunakan untuk proses

simulasi

3. Button digunkan untuk mencari file yang digunakan

4. Button digunkan untuk membuka file

5. Text Box digunakan untuk menampilkan bilngan prima p

6. Text Box digunakan untuk menampilkan kunci enkripsi pengirim

7. Text Box digunakan untuk menampilkan kunci dekripsi pengirim

8. Text Box digunakan untuk menampilkan kunci enkripsi penerima

Beranda Teori Singakat Simulasi Tentang Aplikas

(30)

9. Text Box digunakan untuk menampilkan kunci dekripsi penerima

10.Text Box digunakan untuk menampilkan isi file

11.Label digunakan untuk menampilkan kata karakter

12.Text Box digunakan untuk menampilkan panjang karakter pada file

13.Button digunakan untuk menghitung panjang karakter

14.Button digunakan untuk mengacak kunci pengirim

15.Button digunakan untuk mengacak kunci penerima

16.Text Box digunakan untuk menampilkan hasil enkripsi disebut C1

17.Text Box digunakan untuk menampilkan hasil kompresi pesan C1

18.Button digunkan untuk memulai enkripsi pengirim

19.Button digunakan untuk memulai kompresi Ciphertext pertama

20.Text Box digunakan untuk menampilkan hasil dekompresi pesan C1

21.Button digunakan untuk memulai dekompresi Ciphertext pertama

22.Text Box digunakan untuk menampilkan Ciphertext kedua disebut C2

23.Button digunakan untuk memulai enkripsi penerima

24.Text Box digunakan untuk menampilkan hasil kompresi C2

25.Button digunakan untuk memulai kompresi pesan C2

26.Text Box digunakan untuk menampilkan hasil dekompresi pesan C2

27.Button digunakan untuk memulai dekompresi pesan C2

28.Text Box digunakan untuk menampilkan Ciphertxt ketiga disebut C3

29.Button digunkan untuk memulai dekripsi pengirim

30.Text Box digunakan untuk menampilkan hasil kompresi C3

31.Button digunakan untuk memulai kompresi pesan C3

32.Text Box digunakan untuk menampilkan hasil dekompresi pesan C3

33.Text Box digunakan untuk menampilkan Plaintext asli

34.Button digunakan untuk memulai dekompresi pesan C3

35.Button digunkan untuk memulai dekripsi penerima.

36.Text Box digunakan untuk menampilkan Rc

37.Text Box digunakan untuk menampilkan Rd

38.Text Box digunakan untuk menampilkan waktu proses

39.Text Box digunakan untuk menampilkan Cr

(31)

41.Button digunakan untuk mereset sistem

3.2.1.4.Halaman Tentang Aplikasi

Halaman ini memberikan informasi umum mengenai sistem. Perancangan antarmuka halaman tentang aplikasi seperti pada gambar 3.14 berikut ini

Gambar 3.14. Perancangan Antarmuka Halaman Tentang Aplikasi

Keterangan gambar :

1. TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada

sistem

2. Picturebox digunakan untuk logo universitas

3. Rich Text Box digunakan untuk menampilkan informasi umum sistem

2

3

Beranda Teori Singakat Simulasi Tentang Aplikasi

(32)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1Implementasi

Pada sistem yang dibangun untuk mengimplementasikan algoritma Massey-Omura dan algoritma Elias Gamma pada simulasi Three-Pass Protocol ini menggunakan bahasa pemrograman C#.

4.1.1 Enkripsi Pengirim (Sender)

Misalkan kita akan melakukan input string “ANDIKA ILKOM” pada sistem, maka

terlebih dahulu kita melakukan pengacakan kunci seperti dibawah ini : p = 87502707270147062874246341068527531821

eA = 73302921936338448962701814819195511821 dA = 60584862746847656342022136360540644381 eB = 16130643589832143709017910649031057389 dB = 11292143878957431149223847834340338669

Pengacakan kunci dilakukan oleh pengirim dan penerima pesan. Nilai p merupakan bilangan prima yang telah disepakati kedua belah pihak. eA merupakan kunci enkripsi pengirim dengan syarat 2 < eA < p-1 dan eA relatif prima dengan p-1. Sedangkan dA merupakan kunci dekripsi pengirim dengan syarat bahwa dA invers dari eA. Begitu juga berlaku untuk eB dan dB.

Plaintext : “ANDIKAILKOM”

Akan dilakukan perubahan string plaintext kedalam bentuk byte seperti terlihat pada tabel dibawah ini :

Tabel 4.1 Perhitungan Byte Plaintext

Plaintext ASCII Biner

(33)

Plaintext ASCII Biner

N 78 01001110

D 68 01000100

I 73 01001001

K 75 01001011

A 65 01000001

Sp 32 00100000

I 73 01001001

L 76 01001100

K 75 01001011

O 79 01001111

M 77 01001101

100110101001111010010110100110001001001001000000100000101001011010010 01010001000100111001000001. Sehingga didapatkan byte dari string paintext adalah 23926206480701174177557925441.

Selanjutnya melakukan enkripsi pengirim untuk mendapatkan C1 dengan melakukan

perhitungan C1 = MeA mod p.

M = 23926206480701174177557925441

p = 87502707270147062874246341068527531821 eA = 73302921936338448962701814819195511821

Sehingga didapatkan C1 = 42913776683880481616338513496188417178

4.1.2. Kompresi Ciphertext C1

Setelah didapatkan ciphertxt C1 maka dilakukan kompresi C1 dan kemudian dikirimkan. Sebelumnya akan diubah C1 kedalam bentuk Array Byte

C1 = { 154 116 60 175 1 78 239 215 236 23 112

(34)

Tabel 4.2 Perhitungan Kode Elias Gamma untuk C1

n C1 Kode Elias

1 154 1

2 116 010

3 60 011

4 175 00100

5 1 00101

6 78 00110

7 239 00111

8 215 0001000

9 236 0001001

10 23 0001010

11 112 0001011

12 138 0001100

13 139 0001101

14 228 0001110

15 72 0001111

16 32 000010000

Sehingga didapatkan C1 terkompresi dari tabel 4.2 :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

4.1.3. Dekompresi Ciphertext C1

Penerima mendapatkan pesan C1 terkompresi :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

(35)

154 116 60 175 1 78 239 215 236 23 112 1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011 138 139 228 72 32

0001100 0001101 0001110 0001111 000010000 Sehingga didapatkan Byte Array C1 kembali :

C1 = {154 116 60 175 1 78 239 215 236 23 112

138 139 228 72 32}

Kemudian byte array C1 diubah kedalam bentuk integer C1 = 42913776683880481616338513496188417178

4.1.4. Enkripsi Penerima (Receiver)

Setelah menerima ciphertext C1 terkompresi dan melakukan dekompresi terhadap pesan C1 pada tahap sebelumnya. Maka dilakukan enkripsi untuk mendapatkan

ciphertext C2. Untuk menghitung C2 dilakukan C2 = C1eB mod p.

C1 = 42913776683880481616338513496188417178 eB = 16130643589832143709017910649031057389 p = 87502707270147062874246341068527531821

Sehingga didapatkan C2 = 45052139263066886528873110188757581802

4.1.5. Kompresi Ciphertext C2

Setelah didapatkan ciphertxt C2 maka dilakukan kompresi C2 dan kemudian dikirimkan. Sebelumnya akan diubah C2 kedalam bentuk Array Byte.

C2 = {234 127 171 144 79 92 41 123 220 249 127

199 245 185 228 33 }

Tabel 4.3 Perhitungan Kode Elias Gamma untuk C2

n C2 Kode Elias

1 234 1

2 127 010

3 171 011

4 144 00100

(36)

n C2 Kode Elias

6 92 00110

7 41 00111

8 123 0001000

9 220 0001001

10 249 0001010

11 127 0001011

12 199 0001100

13 245 0001101

14 185 0001110

15 228 0001111

16 33 000010000

Sehingga didapatkan C2 terkompresi dari tabel 4.3 :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

4.1.6. Dekompresi Ciphertext C2

Penerima mendapatkan pesan C2 terkompresi :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C2 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan mencocokkan karakter :

234 127 171 144 79 92 41 123 220 249 127 1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011 199 245 185 228 33

0001100 0001101 0001110 0001111 000010000 Sehingga didapatkan Byte Array C2 kembali :

C2 = {234 127 171 144 79 92 41 123 220 249 127

(37)

Kemudian byte array C2 diubah kedalam bentuk integer C2 = 45052139263066886528873110188757581802

4.1.7. Dekripsi Pengirim (Sender)

Setelah menerima ciphertext C2 terkompresi dan melakukan dekompresi terhadap pesan C2. Maka dilakukan enkripsi untuk mendapatkan ciphertext C3. Untuk

menghitung C3 dilakukan C3 = C2dA mod p.

p = 87502707270147062874246341068527531821 dA = 60584862746847656342022136360540644381 sehingga di dapatkan ciphertext C3 :

C3 = 1166794880944938213782198080100523527

4.1.8.. Kompresi Ciphertext C3

Setelah didapatkan ciphertext C3 maka dilakukan kompresi C3 dan kemudian dikirimkan. Sebelumnya akan diubah C3 kedalam bentuk Array Byte.

C3 = {7 94 214 32 52 181 108 154 95 197 23

219 109 183 224 0}

Tabel 4.4 Perhitungan Kode Elias Gamma untuk C3

n C3 Kode Elias

1 7 1

2 94 010

3 214 011

4 32 00100

5 52 00101

6 181 00110

7 108 00111

8 154 0001000

9 95 0001001

10 197 0001010

11 23 0001011

(38)

n C3 Kode Elias

13 109 0001101

14 183 0001110

15 224 0001111

16 0 000010000

Sehingga didapatkan C3 terkompresi dari tabel 4.4 :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

4.1.9. Dekompresi Ciphertext C3

Penerima mendapatkan pesan C2 terkompresi :

101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000

Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C2 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan mencocokkan karakter :

7 94 214 32 52 181 108 154 95 197 23 1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011 219 109 183 224 0

0001100 0001101 0001110 0001111 000010000 Sehingga didapatkan Byte Array C2 kembali :

C3 = {7 94 214 32 52 181 108 154 95 197 23

219 109 183 224 0 }

Kemudian byte array C2 diubah kedalam bentuk integer C3 = 1166794880944938213782198080100523527

4.1.10. Dekripsi Penerima (Receiver)

Setelah menerima ciphertext C3 terkompresi dan melakukan dekompresi terhadap pesan C3. Maka dilakukan enkripsi untuk mendapatkan ciphertext Plaintext. Untuk

(39)

C3 =1166794880944938213782198080100523527 dB = 11292143878957431149223847834340338669 M = 23926206480701174177557925441

Kemudian melakukan conversi byte M kedalam bentuk biner dan selanjutnya melakukan pencocokan stiring kepada tabel ASCII. Proses akan diperlihatkan pada tabel 4.5 dibawah ini

Tabel 4.5 Conversi Tabel ASCII

Biner ASCII Plaintext

01000001 65 A

01001110 78 N

01000100 68 D

01001001 73 I

01001011 75 K

01000001 65 A

00100000 32 Sp

01001001 73 I

01001100 76 L

01001011 75 K

01001111 79 O

01001101 77 M

Sehingga didapatkan plaintext kembali adalah “ANDIKA ILKOM”

4.2. Pengujian

Pengujian yang dilakukan terhadap algoritma kriptografi Massey-Omura dan algoritma kompresi Elias Gamma pada simulasi Three-Pass Protocol. Parameter yang digunakan dalam pengujian adalah integritas dan waktu proses. Pengujian dilakukan dengan memperhatikan kriteria berikut ini :

1. Plaintext yang digunakan berupa kata atau kalimat dengan panjang maksimal

(40)

2. Karakter yang digunakan adalah Ʃ = {A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ., ,, !, &, *, #, ^, (, $, %, ), {, }, [, ],+, -, =, <, >, /, :, ;, _, ?, |, `, ~, \\, @, ‘ ‘}

|Ʃ| = 93

3. Bahasa pemrograman yang digunakan adalah C#

4. Tidak melakaukan kriptanalisis

5. Panjang planintext tidak lebih besar dari pada panjang kunci

4.2.1. Pengujian Antarmuka Sistem

Pada pengujian antarmuka sistem terdapat empat halaman antarmuka yaitu halaman beranda, halaman teori singkat, halaman simulasi dan halaman tentang aplikasi

4.2.1.1.Halaman Beranda

Halaman ini berisi tentang judul penelitian dan identitas penulis seperti diperlihatkan pada gambar 4.1 dibawah ini.

Gambar 4.1 Tampilan Halaman Beranda

(41)

4.2.1.2.Halaman Teori Singkat

Halaman teori singkat dapat dilihat pada gambar 4.2

Gambar 4.2 Tampilan Halaman Teori Singkat 4.2.1.3.Halaman Simulasi

Halaman simulasi dapat dilihat pada gambar 4.3 berikut ini

Gambar 4.3 Tampilan Halaman Simulasi

(42)

menekan tombol yang telah disediakan. Tombol reset berfungsi untuk mengulang kembali.

4.2.1.4.Halaman Tentang Aplikasi

Antarmukan halaman tentang aplikasi dapat dilihat pada gambar 4.4 dibawah ini

Gambar 4.4 Tampilan Antarmuka Halaman Tentang Aplikasi

Pada gambar 4.4 terlihat logo universitas dan informasi tentang aplikasi yang telah dibuat.

4.2.2. Pengujian Black Box

(43)

4.2.2.1.Pengujian Halaman Beranda

Pengujian halaman Beranda berguna menampilkan anatarmuka yang berisi judul penelitian. Dapat dilihat pada tabel 4.6

Tabel 4.6 Pengujian Halaman Beranda

No Skenario

Pengujian

Hasil yang diharapkan

Hasil Pengujian Kesimpul

an

1 Run

Program

Sistem menampilkan halaman beranda sebagai halaman awal

yang berisi

judul, logo,

dan nama

pembuat sistem

Diterima

(44)

4.2.2.2.Pengujian Halaman Teori Singkat

Pengujian halaman teori singkat berguna menampilkan antarmuka yang berisi teori singkat tentang algoritma.

Tabel 4.7 Pengujian Halaman Teori Singkat

No Skenario

Pengujian

Hasil yang diharapkan

Hasil Pengujian Kesimpulan

1 Memilih tab

Control teori singkat

Sistem menampilkan

halaman teori

singkat yang

berisi penjelasan singkat mengenai Massey-Omura,

Elias Gamma,

dan Three-Pass

Protocol

Diterima

4.2.2.3.Pengujian Halaman Simulasi

Pengujian Black Box pada halaman pengamanan berguna untuk mengetahui apakah

aplikasi telah mampu mengatasi error – error terhadap masukan yang berbeda. Hasil

(45)

Tabel 4.8 Pengujian Halaman Simulasi

Hasil Pengujian Kesimpulan

(46)
(47)
(48)

Pada pengujian Black Box halaman simulasi seperti terlihat pada tabel 4.8 pada halaman sebelumnya terlihat bahwa sistem berhasil melakukan input file .doc, membuka file dengan menekan tombol buka file, kemudian dapat melakukan input langsung pliantext, melakukan pengacakan kunci dengan menekan tombol acak kunci A dan acak kunci B, melakukan enkripsi pesan dengan menekan tombol enkripsi, melakukan kompresi dengan menekan tombol kompresi, dan melakukan dekompresi dengan menekan tombol dekompresi.

4.2.2.4.Pengujian Halaman Tentang Aplikasi

Menampilkan antarmuka halaman berisi logo universitas dan informasi singkat berkaitan dengan aplikasi ini. Terlihat pada tabel 4.9

Tabel 4.9 Pengujian Antarmuka Halaman Tentang Aplikasi

N

Hasil Pengujian Kesimpulan

1 Memilih tab

(49)
(50)

4.2.4. Kualitas Kompresi

Pada perihtungan sistem, sebagai contoh yang digunakan adalah “ANDIKA USU”.

Proses akan dimulai dengan melakukan representasi string “ANIDIKA USU” kedalam bentuk byte. Kemudian dioperasikan dengan kunci yang telah diacak sebelumnya. Output yang diperlihatkan oleh sistem dalam proses enkripsi,kompresi,dekompresi dan dekripsi adalah dalam bentuk heksadesimal.

Gambar 4.5 Perhitungan Kunci Enkripsi - Dekripsi

Pada gambar 4.5 diatas terlihat bahwa pada pertama kali pengguna mengacak bilangan prima p dan melakukan pengecekan prima dengan algoritma Lehman. Selanjutnya menghitung kunci enkripsi eA, eB dan kunci dekripsi dA, dB. Dalam hal ini, 2 < e < p-1 dan GCD (e,p-1) harus sama dengan 1. Kemudian menghitung kunci dekripsi d yang merupakan invers dari e dalam modulo p-1. Pada antar muka sistem hasil angka perhitungan direpresentasikan kedalam dentuk heksadesimal. Dari uraian diatas sehingga didapatkan hasil seperti terlihat pada tabel 4.11

Tabel 4.11 Pengacakan Kunci Enkripsi-Dekripsi

(51)

Setelah kunci didapatkan maka selanjutnya melakukan perhitungan ciphertext C1

dengan menggunakan rumus C1 = MeA mod p. Dalam hal ini, string “ANDIKA USU”

telah diubah kedalam bentuk byte Selanjutnya melakukan proses kompresi untuk kemudian dikirimkan. Saat penerima pesan telah mendapatkan ciphertext C1 yang telah dikompresi maka penerima melakukan proses dekompresi untuk kemudian dilakukan

enkripsi kedua disebut ciphertext C2 dengan menggunakan rumus C2 = C1eB mod p.

Selanjutnya ciphertext C2 terkompresi dikirimkan kembali kepada pengirim awal. Setelah ciphertext C2 sudah didekompresi kemudian dilakukan dekripsi pengirim

dengan rumus C3 = C2dA mod p serta mengirimkan kembali C3 terkompresi kepada

penerima pesan. Penerima pesan telah menerima ciphertext C3 terkompresi. Pada langkah ini, dilakukan dekompresi kepada pesan C3 dan kemudian dilakukan dekripsi

dengan rumus M = C3dB mod p. Sehingga dengan demikian didapatkan plaintext

kembali adalah “ANDIKA USU”.

Perhitungan kualitas kompresi terhadap panjang karakter teks yang berbeda diperlihatkan pada tabel 4.12 dibawah ini :

Tabel 4.12 Perhitungan Kualitas Kompresi

Dari tabel diatas dapat diukur beberapa parameter efisensi kompresi rata-rata seperti terlihat dibawah ini :

a. Ratio of Compression (Rc)

� = ℎ �

(52)

b. Compression Ratio (Cr)

Ss =ukuran sebelum dikompresi – ukuran setelah dikompresi

Ss rata-rata = 3,67

4.2.5. Pengukuran Waktu

Pengukuran waktu dilakukan terhadap panjang karakter pesan yang akan disandikan seperti terlihat pada tabel 4.13 berikut

(53)
(54)

97C45ACAF9

(55)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan analisis, perancangan dan hasil pengujian implementasi algoritma Massey-Omura dan Elias Gamma dalam Three-Pass Protocol dapat disimpulkan bahwa:

1. Kombinasi algoritma kriptografi Massey-Omura dan algortima kompresi Elias

Gamma pada simulasi Three-Pass Protocol memenuhi syarat keutuhan data.

Data hasil enkripsi C3 sama dengan plaintext awal.

2. Kualitas algoritma kompresi Elias Gamma tergantung kepada beberapa

parameter . Semakin besar nilai dari parameter compression ratio, ratio compression, redundancy, dan Space saving maka semakin baik kompresinya.

3. Hasil pengujian kompresi text dengan karakter berbeda menggunakan algoritma

Elias gamma didapatkan bahwa compression ratio rata- rata 88,54 %, ratio

compression rata-rata 1,13 , redundancy rata-rata sebesar 11,46%, dan space

saving rata-rata sebesar 3,67 bit.

4. Rata – rata waktu yang diperlukan pada proses simulasi algoritma adalah 58 ms.

5.2. Saran

Pada penelitian ini, terdapat beberapa saran yang dapat dipertimbangkan untuk penelitian selanjutnya, yaitu:

1. Untuk penelitian selanjutnya diharapkan panjang kunci lebih besar

2. Untuk penelitian selanjutnya diharapkan tipe file teks yang dapat dibaca dapat

(56)

BAB 2

LANDASAN TEORI

2.1Kriptografi

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).

(57)

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

(58)

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

(59)

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 :

(60)

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 :

(61)

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

(62)

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

(63)

4. Hitung C2 = C1eB mod p . . . (2)

f. Proses 2 untuk pengirim

1. Terima C2 dari Penerima

(64)

Untuk 64 : C3 = 6481 mod 101 = 23

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.

(65)

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

(66)

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

(67)

(β). 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 :

(68)

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)

(69)

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 (n)

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) =

(M-1)*”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 M (n) u(M) =(M-1)*”0”+”1” Elias Gamma code

1 A 1 {} 1 1

2 I 2 0 01 010

3 Space 2 1 01 011

(70)

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)

Gambar

Tabel 3.2 Tabel kebutuhan Nonfungsional Sistem
Gambar 3.4 dibawah ini merupakan diagram alir algoritma Elias Gamma.
TabelCode.Add(string)
Gambar 3.5 Diagram Alir Bangkitkan Prima
+7

Referensi

Dokumen terkait

[r]

Nama Pekerjaan : Sistem Informasi Manajemen Aplikasi Perizinan Lokasi : Kabupaten Muara Enim.. Pagu :

Ade terlahir dalam keadaan buta total ( blind ) bukan sekedar low vision (kurang lihat) ataupun limited vision , mengalami proses pertumbuhan yang khas

Hasil penelitian menunjukkan terselenggarnya penerapan metode pekerja sosial yang dilakukan oleh pekerja sosial di Unit Pelaksana Teknis Pelayanan Anak dan Remaja yang

15 Sarana pembelajaran Melakukan bimbingan dan fasilitasi bagi lembaga untuk mendapatkan pemahaman mengenai ketentuan peralatan dan perlengkapan sarana pembelajaran yang seharusnya

Angket ini saya maksudkan sebagai alat pengumpulan data dalam rangka menyusun skripsi yang berjudul “ Etos Kerja Penenun dalam Meningkatkan Status Ekonomi (Studi Deskriptif

Online game and quiz ini merupakan aplikasi yang didasarkan pada: (a) karakteristik user , karena user nya adalah mahasiswa maka model butir soal yang digunakan disesuaikan

Upaya atau tidakan yang harus dilakukan untuk mewujudkan persepsi yang akurat terhadap harapan konsumen ke dalam desain dan standar pelayanan, akan efektif hanya bila pihak