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
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
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
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
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;
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]){
}
}
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();
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.
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.
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
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
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
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
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
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.
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
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.
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
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Tabel 4.8 Pengujian Halaman Simulasi
Hasil Pengujian Kesimpulan
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
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
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)
� = ℎ � � ��
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
97C45ACAF9
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
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).
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
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
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 :
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 :
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 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
4. Hitung C2 = C1eB mod p . . . (2)
f. Proses 2 untuk pengirim
1. Terima C2 dari Penerima
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.
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
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
(β). 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 :
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 = 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
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)