Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol
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)
Lecture 2013 - 2017
2 3 4
COURSE
No. Course Year
1 Ms Office 2011
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(); aDoc.ActiveWindow.Selection.Copy();
IDataObject data =
System.Windows.Forms.Clipboard.GetDataObject(); plaintext.Text =
data.GetData(System.Windows.Forms.DataFormats.Text). ToString();
System.Windows.Forms.Clipboard.SetDataObject(string.Empty); }
catch(Exception err){
MessageBox.Show(err.Message); }
finally{
MessageBox.Show("File berhasil dibaca"); }
b. Fungsi Tulis File
void Tulis_Word(string filepath, string tulis){ Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
(4)
object objTrue = true;
object missing = System.Reflection.Missing.Value; object emptyData = string.Empty;
try{
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Add();
Range rng = aDoc.Application. ActiveDocument.Range(0,0);
rng.Text = tulis;
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);
}
catch(Exception err){
MessageBox.Show(err.Message); }
finally{
MessageBox.Show("File berhasil ditulis"); }
c. Fungsi Massey-Omura
public Massey_Omura(BigInteger p){ if (p == 0)
this.p = generate_kunci_prima(); else
this.p = p; do{
e = must_gcd_with(BigInteger.Subtract(this.p,1));
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))) != 1);}
// Acak Prima
private BigInteger generate_kunci_prima(){ BigInteger c_prima;
do{
rng.GetBytes(rnd);
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){
BigInteger x1, y1, x2, y2, q, temp, modulo = b; x1 = y2 = 1;
x2 = y1 = 0; while (b != 0) {
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)
return "1";
int encoding = 0;
StringBuilder sb = new StringBuilder
int N_zero = (int)(Math.Log10(i) / Math.Log10(2)); int remaining = (int)Math.Pow(2, N_zero); sb.Append('0', N_zero);
sb.Append(1);
sb.Append(Convert.ToString(i % remaining,2).P 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]){ bitbuffer <<= 1;
bitbuffer |= byte.Parse(ch.ToString()); bitcount++;
if (bitcount == 8){
hasil.Add(bitbuffer); bitcount = 0;
(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.
Reza, M., Budiman, M.A. & Arisandi, D. 2012. Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura. Journal Dunia Teknologi Informasi 1:20-27.
(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.
Yan, Song Y.Computtational Number Theory and Modern Cryptography.2013. Beijing: Colleges of Science.
(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 oleh sytem analyst jika sistem yang akan dibangun merupakan pengembangan dari sistem sebelumnya. Jika sistem yang dibangun adalah sistem yang baru atau sistem sebelumnya sudah tidak relevan dengan sistem yang akan dibangun, maka tahap ini dapat dilewatkan (Dennis, et al. 2016).
(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 informasi dan efisiensi dalam pengiriman informasi
Bagaimana mengamankan pesan dan
sekaligus
mengefesiensikan pesan dalam pertukaran
informasi.
Ada pihak ketiga yang menginginkan informasi
System Method
Material
Belum adanya aplikasi desktop yang mengombinasikan
algoritma kriptografi dan algoritma kompresi yang dipilih
Algoritma kriptografi asimetris lebih aman namun menghasilkan data yang besar
Memanfaatkan algoritma kriptografi dan algoritma kompresi
(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
Pada diagram alir sistem menunjukan alur kerja sistem secara sistematis ditampilkan pada gambar 3.2. Pada sistem yang dibangun, secara umum memiliki 4 halaman utama yaitu halaman beranda, halaman teori singkat, simulasi, dan tentang aplikasi seperti pada seperti terlihat pada gambar 3.2 pada halaman 29 dibawah ini :
(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.
Terlihat pada gambar 3.3. diatas merupakan proses enkripsi dan dekripsi algoritma Massey-Omura. Pada gambar menunjukkan proses enkripsi Massey-Omura. Pada
(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
M adalah nilai ASCII pada karakter di plaintext. Hasil perhitungan dimasukkan ke dalam array.
(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. Kemudian, melakukan konfersi bilangan n kedalam bentuk biner untuk selanjutnya
(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
for n to t lakukan :
b <= DecToBin (n) M <= b.Length
Code <= code.Substring(1,code.Length-1) For k = 0 to M-1
Lakukan :
Unary <= unary + “0” Unary <= unary + “0”
For j = 0 to M Lakukan :
String = “Unary” + “code” TabelCode.Add(string)
Pada algoritma Elias Gamma, pertama akan membuat sebuah tabel yang menjadi kamus data. Pada tabel tersebut akan disusun karakter menurut banyak kemunculannya. Karakter dengan frekuensi kemunculan paling banyak akan diletakkan pada urutan pertama dan begitu seterusnya. Selanjutnya dilakukan operasi dan proses kompresi sehingga didapatkan kode Elias Gamma. Kemudian karakter yang telah diterjemahkan menjadi kode baru akan dikirmkan.
(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
Pada gambar 3.5 diatas ditrangkan bahwa proses generate bilangan prima diawali dengan mengambil sebuah bilangan acak a. Langkah selanjutnya mengecek apakh bilangan a adalah bilangan prima dengan menggunakan algoritma Lehmann. Jika pada fungsi Lehmann menghasilkan True terhadap bilangan a , maka a adalah 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
Pada gambar 3.6 diatas diterangkan bahwa proses algoritma Lehmann diawali dengan menginputkan bilangan prima p. Kemudian mengacak bilangan antara 2 sampai
(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.
Pada gambar 3.7 diatas memperilhatkan proses generate kunci enkripsi e dan kunci dekripsi d. Diawali dengan menginputkan bilangan prima p, kemudian melakukan
(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 Lakukan
e = bilangan acak antara 2 dan p-1 N = GCD ((p-1),e)
Jika N == 1 Return e
Pseudocode Kunci Dekripsi : Invers_modular(e,p -1)
x1,y1,x2,y2, q ,temp, modulo = b If ( a > b)
X1 = y2 = 1 X2 = y1 = 0 Else
x1 = y2 = 0 x2 = y1 = 1 While (b !=0)
q = a / b temp = b
b = a – (q * b) a = temp
temp = x2 x2 = x1 x1 = temp temp = y2
y2 = y1 – (q * y2) y1 = temp
(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
Pada gambar 3.8 diatas mendeskripsikan diagram use case kebutuhan fungsional sistem pada tabel 3.1 sebelumnya. Gambar diatas menunjukkan bahwa setiap use case
(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.
Pada gambar 3.9 diatas menunjukkan aksi dan reaksi antara penguna dengan sistem. Pada gambar terlihat bahwa aksi yang diberikan oleh pengguna kepada 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
1 Cari Buka Enkripsi Plaintext Acak Kunci A Hitung Karakter Kompres C1 Dekomp resi C1 Enkripsi C1 Kompres C2 Dekomp resi C2 Dekripsi C2 kompres C3 Dekomp resi C3 Dekripsi C3 Acak Kunci B 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 24 26 27 28 29 30 31 32 34 33 35 36 37 38 Reset 39 40 41
(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
Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C1 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan mencocokkan karakter :
(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
32 karakter. Plaintext dapat diinputkan melalui open file .doc atau secara manual.
(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
Pada gambar 4.1 dapat dilihat bahwa halaman awal ini terdiri dari judul sistem, logo universitas dan nama pembuat sistem. Tab kontrol diatas judul digunakan untuk memilih menu.
(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
Pada gambar 4.3 diatas tampak tampilan antarmuka halaman simulasi. Pada awalnya pengguna akan memilih file teks berekstensi .doc yang tersimpan pada perangkat komputer. Selanjutnya pengguna melakukan pengacakan kunci enkripsi dan dekripsi algoritma Massey- Omura dengan menekan tombol acak kunci. Kemudian selanjutnya memulai proses enkripsi, kompresi, dekompresi dan dekripsi dengan
(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
Pengujian Black Box berfokus pada persyaratan fungsional aplikasi. Pangujian ini memungkinkan analisis sistem memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan fungsional aplikasi.
(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
Pada tabel 4.6 diatas terlihat bahwa sistem menampilkan halaman beranda pada saat pertama kali program dijalankan. Isi dari halaman ini adalah menampilkan judul sistem,kemudian juga menampilkan logo universitas sumatera utara dan juga terdapat nama dan nim pembuat sistem.
(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 N
O
Skenario Pengujia
n
Hasil yang diharapkan
Hasil Pengujian Kesimpulan
1 Input file
.doc dengan pencaria n
Sistem menampilkan
kotak dialog
pencarian dan menampilkan path file yang dipilih
Diterima
2 Buka file
dengan tombol buka
Sistem
nampilkan isi file .doc dan memberikan pesan “Pesan berhasil
dibaca”
(46)
3 Input plaintetx langsung
Sistem menerima plaintext yang diinputkan langsung oleh pengguna
diterima
4 Pembang
kit Kunci dengan menakan tombol Acak Kunci A, kemudia
n Acak
kunci B
Sistem menampilkan
hasil acak
kunci pada text
box dan
menampilkan pesan keslahan
jika tombol
kunci B lebih dulu di tekan
Diterima
5 Melakuk
an Enkripsi pesan dengan menekan tombol enkripsi Sistem menampilkan hasil enkripsi pada tex box dan
memberikan pesan peringatan apabila kunci belum diacak
(47)
6 Melakuk an Kompres i dengan menekan tombol kompresi
Sistem meampilkan hasil kompresi dan
memberikan pesan peringatan apabila
langkah proses sebelumnya tidak selesai
Diterima
7 Melakuk
an dekompr esi dengan menekan tombol dekomre si
Sistem akan
menampilkan hasil dekompresi dan menampilkan pesan
peringatan bila
ada proses
yang dilompati
Diterima
8 Melakuk
an Dekripsi dengan menekan tombol Dekripsi Sistem meampilkan
Palintext dan
menampilkan pesan “file
berhasi di
tulis”
(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
O
Skenario Pengujian
Hasil yang diharapkan
Hasil Pengujian Kesimpulan
1 Memilih tab
Control Tentang Aplikasi
Sistem menampilkan halaman tentang
aplikasi yang
berisi logo
universitas dan informasi umum aplikasi
Diterima
4.2.3. Keutuhan Data
Salah satu kriteria pengujian pada penelitian kali ini adalah keutuhan data. Implementasi ini akan memenuhi syarat keutuhan data apabila hasil dekripsi terakhir sama dengan paintext awal yang diinputkan oleh pengguna. Pada tabel 4.10 dihalaman 63 akan diperlihatkan keutuhan data.
(49)
Tabel 4.10 Tabel Pengujian Keutuhan Data
Plaintext C1 C2 C3 Plaintext
Fasilkom-TI USU 43BC12BC4E FC5F18859E3 AF80A91560B 8D589A18B3F 7C0BE289410 B40D1542BC 3411E86091F58 15C4BB862691 89A7ECF7E7A 0F28E82FA87E C0F7AA3C2DB 6186 24A95FBC31F4 A752E9CE9A5 7B2C88BB9022 783A78B169BF B9B252425551 B3F4F Fasilkom-TI USU Andika Mulia Utama USU 1E2128CB1D0 5BCCA06159 04F48CFD9FF 4535BD56AD 739A60409A1 F993B587C84 0CAE79AFDA5 9E5992368B5F 627766FF006F7 AE5C10914EB1 E77B59C2E023 2FC1 2C3F75B687D8 4E92343519CE 3C96E9186ED4 417EDF49B5A4 8EE342F096717 E9A Andika Mulia Utama USU Andikamuli autama@g mail.com 139A7E65DA 4EE97C08D82 5827D115D59 3E003FC39A9 54ACA32233 ADF8B32B18 1F46A4158B6A 7FF1A63C260A 2D197B1ACD2 FF5440964D17 C8A1E4490695 D096 66F11B232CA4 8835DB11B2C7 7CBDF2200BA BFBD8FB52F7 D603530DE19B F1EF Andikamulia utama@gmai l.com
Pada tabel 4.10 diatas dapat dilihat bahwa penelitian ini, memenuhi syarat keutuhan data karena plaintext awal telah berhasil didapatkan kembali setelah melakukan proses simulasi. Pada proses ini, awalnya plaintext dienkripsi dengan algoritma Massey-Omura. Setelah didapat ciphertxt C1 maka pesan akan dilakukan proses kompresi untuk kemudian dikirimkan kepada penerima pesan. Selanjutnya penerima pesan melakukan dekompresi ciphertext C1 dan melakukan proses selanjutnya sehingga didapat Ciphertext C2, Ciphertext C3 dan plaintext akhir yang dilakukan dalam simulasi Three-Pass Protocol.
(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
M P eA dA eB dB
ANDIKA USU 42411024 00484352 81277740 07418711 93258187 47428717 35707439 56576444 72761201 84841 3239680755 1876544060 9434393812 3061789683 7996123103 4136073489 9654634841 1515229 3335809443 0658779742 0109168660 8191319397 7798375141 2285040844 6736746028 730869 84946610907 83203761190 30221045140 57188482720 55641545623 99859695391 7207433709 419268821 574965303 960657993 798272757 327635951 161276769 532344477 226969357 85389
(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
Plaintext Ratio of
Compression (Rc)
Compression Ratio Cr (%)
Redundancy Rd (%)
Space Saving Ss (bit)
ANDIKA USU 1,14 87,50 12,50 4
Fasilkom-TI USU 1,12 89,58 10,42 3,33
Kakashi-IKLC 1,10 90,63 9,38 3
Ini_simbol+_)(*&^%$ @!#
1,17 85,42 14,58 4,66
Angka(0987654321) 1,12 89,58 10,42 3,33
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)
� = � ℎ � � �� � %
Cr rata – rata = 88,54 %
c. Redundancy (Rd)
Rd = 100% -Cr
Rd rata-rata = 11,46 %
d. Space Saving (ss)
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
Tabel 4.13 Tabel Pengukuran Waktu Proses
Plaintext C1 C2 C3 Waktu (ms)
Andika (6 karakter) 2DFEE46B355 D1F9C516397F 7375D5C75CE 08D68D1D028 88D9512FD5E B43D91D5 5A184AFE2C196 A2B604C47A5FA 4BCE5797AA0C3 A9EB84A9C2EB BB464B647C940 36B2FFFD6FBD FB0C2A9E870B E860E5D610728 78DB107C5EEA A9B319636B8E1 E2 57 1DE187628177 E955FF284013 FF2565068988 6496FF500A34 ECB7812CDE DEC99D 095C8D5359CF66 9E6FB5C048DFB BF10F9A9D1CA F33EB097964A2 D9D675386510 16468845A06BD E28438DB5434C 9D3C0A5B07C1 FFE8D967BABF B30C446CA5270 2 50 18173ABA7A6 F1D9994C87F AF1AF66CF7E 16837CA36CB10 2EF9ABB36B49D 3CB1DD38C079 1B7735A249330 C1F13DCD9CB D1F50ACC6DFE 53
(53)
D79C8227EE1 16A0641640FC 733D2F15 D7F5A381F3B13 74F285C157891 1670EC6CAC964 F928BFDE45CC CD
Rata-rata 53 ms Andika IKLC (11 karakter) 13DE1C89F21 9E26CC5109E A4DE3F14DB2 2639DCB57A1 3EB60E77E611 0DA27A9C 15AF889126DEB 2D5FCE6C3A54E 1F9A2126D6ED7 FC41EF3BB0393 3758ABD4AB3E 15FE256C484C3 CECAB213D364 D50C8FF19849B F594A74001052 B7DFCA25462A 1 51 31E97BAE7A D1B464899610 CA49A7D59A D64AD5D7C3 D027B8F38E5 07C1999D41E 2928D8D7D26F2 8B8C3CD41C69A A5086E036EC7C F4F8ABA208E79 1DAB717E0184 2BED4BBB5523 9D6517859C763 09A8D9F7AEC2 1BDEB9433410F 3EFA3900C9A2 BF 46 1B8C8CFDBC 871AECB350C 253701E22B8B 8F72A868DE1 771A8C719929 B74DDE3D 201C8F84C3BCB 0B7FD83D1005A AAF91508E35197 B316F86E2D90E DEF99477672 209F325E8CFF1 495E97068B09A 3C933F264FDA CD5FEDDE6DA 61FD4A5CAA58 2BF 47
Rata - Rata 48 ms Andika IKLC
Fasilkom -TI USU ^^ (31 karakter) 12554F36D606 FF3964F06538 0AF3D897A25 3F748BBC12E 06E7F873A52 91991BB 0F20118C5C7 B9E88E267B2 03995BF03C1 7D690F0BF2B 5913ACD1F41 BD2E21EBF 324A5146F6B AB9FB9B3B0 C9B74FA09E6 58E0E54B97F 81CEFCA583 B7CD122C638 56 2CD9FDAC4A EDFBB0A290 26C40108BCA EF400B14875 30900031B483 F7C32C41BC5 60
(54)
97C45ACAF9 7CE74FE106D D0D73B777B4 CDEECD6808 BF
705744E27E5F 408A3E08C20 F989E12B45D F1B97B59
05238C8EC8A DE1A084060B F1521AE2C6C 6AC59B60
1AB146BC107 363982279B8F FC2E674B263 4AEBA041B4 C5F57E5E86D 443C59334
25BF0EDD296 03E1594C4FF B4A2751A65C E189E0BA3D F85F0FFE284 8171AE78BE
5562F24C397 D574A8E67B A44F578C40A F35E5794FF75 9DFA00667F5 7C04ED13
59
Rata-rata 58
Pada tabel 4.13 bahwa panjang karakter string tidak mempengaruhi lamanya waktu proses pada sistem. Terlihat pada pengujian 6 karakter membutuhkan waktu 53 ms, untuk pengujian 11 karakter memerlukan waktu 48 ms dan untuk pengujian 31 karakter memerlukan waktu 58 ms.
(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).
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).
(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
Dalam ilmu kriptografi digunakan sebuah teknik matematika untuk menjaga keamanan sebuah informasi. Keamanan yang dimaksud adalah terdapat beberapa unsur seperti kerahasiaan, keutuhan data dan otentikasi entitas (Sadikin, 2012).
(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 :
100 mod 21 = 16 21 mod 16 = 5 16 mod 5 = 1
(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)
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 37 : C2 = 3757 mod 101 = 58
Untuk 24 : C2 = 2457 mod 101 = 16
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 74 : C2 = 7457 mod 101 = 50
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 47 : C2 = 4757 mod 101 = 64
Untuk 67 : C2 = 6757 mod 101 = 75
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 32 : C2 = 3257 mod 101 = 62
Untuk 70 : C2 = 7057 mod 101 = 9
Untuk 84 : C2 = 8457 mod 101 = 87
Untuk 65 : C2 = 6557 mod 101 = 17
Untuk 45 : C2 = 4557 mod 101 = 70
Untuk 65 : C2 = 6557 mod 101 = 17
didapat C2 = 17 58 16 75 50 17 62 70 9 64 75 17 62 9 87 17 70 17
f. Proses 2 untuk pengirim
1. Terima C2 dari Penerima
2. Hitung C3 = C2dA mod p . . . . . . .(3)
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 58 : C3 = 5881 mod 101 = 97
Untuk 16 : C3 = 1681 mod 101 = 5
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 50 : C3 = 5081 mod 101 = 3
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 70 : C3 = 7081 mod 101 = 85
(64)
Untuk 64 : C3 = 6481 mod 101 = 23
Untuk 75 : C3 = 7581 mod 101 = 61
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 62 : C3 = 6281 mod 101 = 62
Untuk 9 : C3 = 981 mod 101 = 21
Untuk 87 : C3 = 8781 mod 101 = 87
Untuk 17 : C3 = 1781 mod 101 = 17
Untuk 70 : C3 = 7081 mod 101 = 85
Untuk 17 : C3 = 1781 mod 101 = 17
Diapat C3 = 17 97 5 61 3 17 62 85 21 23 61 17 62 21 87 17 85 17
3. Kemudian dikirim C3 kepada penerima
g. Prorses 2 untuk penerima
1. Terima C3 dari pengirim
2. Dekripsi pesan dengan rumus M = C3dB mod p . . . (4)
Kemudian konversikan ke tabel ASCII.
Untuk 17 : M = 1793 mod 101 = 65
Untuk 97 : M = 9793 mod 101 = 78
Untuk 5 : M = 593 mod 101 = 68
Untuk 61 : M = 6193 mod 101 = 73
Untuk 3 : M = 393 mod 101 = 75
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 85 : M = 8593 mod 101 = 77
Untuk 21 : M = 2193 mod 101 = 85
Untuk 23 : M = 2393 mod 101 = 76
Untuk 61 : M = 6193 mod 101 = 73
Untuk 17 : M = 1793 mod 101 = 65
Untuk 62 : M = 6293 mod 101 = 32
Untuk 21 : M = 2193 mod 101 = 85
Untuk 87 : M = 8793 mod 101 = 84
Untuk 17 : M = 1793 mod 101 = 65
(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
Algoritma kompresi Lossy secara umum digunakan untuk melakukan kompresi gambar, suara dan juga video. Pada saat setelah kompresi akan ada data yang hilang. Dengan kata lain, data yang kita kompresi tidak akan utuh seperti semula (Bhattacharjee et al, 2013).
(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
(1)
vi
AN IMPLEMENTATION OF MASSEY-OMURA AND ELIAS GAMMA ALGORITHMS
IN THREE-PASS PROTOCOL
ABSTRACT
Cryptography is a data security method. In general, cryptography has two algorithms, they are symmetric and asymmetric algorithms. One example of asymmetric algorithm is Massey-Omura. Massey-Omura algorithm using complex calculation of discrete logarithm in encryption and decryption process. Massey-Omura gives a good result in data security but the resulted chiphertext will have a big data size. Efficiency is needed in information exchange. The big data size of information will give an effect in transmission cost and time. Compression is a technique for data storage efficiency that aims to reduce the data size becomes smaller to make the data transmission faster. In general, there are two kinds of compression, Lossless and Lossy Compression. Elias Gamma algorithm is an example of Lossless compression. The compression processed by reading the string and than it will create the new codes in Elias table. In this research, these two algorithms is combined in Three-Pass Protocol to get the data security and efficiency. Three-Pass Protocol is a key distribution protocol with no exchange key. This research showed that the combination of Massey-Omura and Elias Gamma algorithms securing a text file with a .doc extension, and also compressing the data and managed to keep the integrity of the data to restore the data as before. Result show that the compression ratio is 88.54%, compression ratio 1.13, redundancy to 11.46%, and space saving of 3.67 bits.
Keywords: Massey-Omura, Elias Gamma, Three Pass Protocol, Cryptography, Compression
(2)
vii
DAFTAR ISI
Halaman
Persetujuan i
Pernyataan ii
Ucapan Terima Kasih iii
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Daftar Lampiran xi
Bab 1 Pendahuluan
1.1.Latar Belakang 1
1.2.Rumusan Masalah 2
1.3.Tujuan Penelitian 3
1.4.Batasan Penelitian 3
1.5.Manfaat Penelitian 3
1.6.Metodologi Penelitian 3
1.7.Sistematika Penulisan 4
Bab 2 Landasan Teori
2.1.Kriptografi 6
2.1.1. Definisi Kriptografi 6
2.1.2. Tujuan Kriptografi 7
2.1.3. Penggunaan Kriptografi 7
2.1.4. Kriptografi Klasik 8
2.1.5. Kriptografi Modern 8
2.1.6. Massey-Omura 9
2.2.Kompresi 15
2.2.1. Definis Kompresi 15
2.2.2. Penggunaan Kompresi 15
2.2.3. Elias Gamma 16
2.3.Three-Pass Protocol 21
2.4.Back Box Testing 22
2.5.Penelitian yang Relevan 22
Bab 3 Analisis dan Perancangan
3.1.Analisis Sistem 24
3.1.1. Understand 24
(3)
viii
3.1.3.4.Implementasi Diagram UML 38
3.1.3.4.1. Use Case Diagram 38
3.1.3.4.2. Sequence Diagram 39
3.1.3.4.3. Activity Diagram 40
3.2.Perancangan Sistem 41
3.2.1. Perancangan Antarmuka Sistem 41
3.2.1.1.Halaman Beranda 41
3.2.1.2.Halaman Teori Singkat 42
3.2.1.3.Halaman Simulasi 43
3.2.1.4.Halaman Tentang Aplikasi 45
Bab 4 Implementasi dan Pengujian
4.1.Implementasi 46
4.1.1. Enkripsi Pengirim (Sender) 46
4.1.2. Kompresi Ciphertext C1 45
4.1.3. Dekompresi Ciphertext C1 48
4.1.4. Enkripsi Penerima (Receiver) 49
4.1.5. Kompresi Ciphertext C2 49
4.1.6. Dekompresi Ciphertext C2 50
4.1.7. Dekripsi Pengirim (Sender) 51
4.1.8. Kompresi Ciphertext C3 51
4.1.9. Dekompresi Ciphertext C3 52
4.1.10.Dekripsi Penerima (Receiver) 52
4.2.Pengujian 53
4.2.1. Pengujian Antarmuka Sistem 54
4.2.1.1. Halaman Beranda 54
4.2.1.2. Halaman Teori Singkat 55
4.2.1.3. Halaman Simulasi 55
4.2.1.4. Halaman Tentang Aplikasi 56
4.2.2. Pengujian Black Box 56
4.2.2.1. Pengujian Halaman Beranda 57
4.2.2.2. Pengujian Halaman Teori Singkat 58
4.2.2.3. Pengujian Halaman Simulasi 58
4.2.2.4. Pengujian Halaman Tentang Aplikasi 62
4.2.3. Keutuhan Data 62
4.2.4. Kualitas Kompresi 64
4.2.5. Pengukuran Waktu 66
Bab 5 Kesimpulan dan Saran
5.1.Kesimpulan 69
5.2.Saran 69
(4)
ix
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel Perhitungan Nilai dA 11
Tabel 2.2 Tabel Perhitungan Nilai dB 12
Tabel 2.3 Kode Elias Gamma 17
Tabel 2.4 Perhitungan Karakter Kompresi 18
Tabel 2.5 Perhitungan Panjang Biner 19
Tabel 2.6 Perhitungan u(M) dan kode Elias Gamma 19
Tabel 3.1 Tabel Kebutuhan fungsional Sistem 26
Tabel 3.2 Tabel Kebutuhan Nonfungsional Sistem 27
Tabel 4.1 Perhitungan Byte Plaintext 46
Tabel 4.2 Perhitungan Kode Elias C1 48
Tabel 4.3 Perhitungan Kode Elias C2 49
Tabel 4.4 Perhitungan Kode Elias C3 51
Tabel 4.5 Conversi Tabel ASCII 53
Tabel 4.6 Pengujian Halaman Beranda 57
Tabel 4.7 Pengujian Halaman Teori Singkat 58
Tabel 4.8 Pengujian Halaman Simulasi 59
Tabel 4.9 Pengujian Halaman Tentang Aplikasi 62
Tabel 4.10 Tabel Pengujian Keutuhan Data 63
Tabel 4.11 Tabel Pengacakan Kunci Enkripsi-Dekripsi 64
Tabel 4.12 Perhitungan Kualitas Kompresi 65
(5)
x
DAFTAR GAMBAR
Halaman
Gambar 2.1 Scytale 8
Gambar 2.2 Simulasi Algoritma Simetris 9
Gambar 2.3 Simulasi Algoritma Asimetris 9
Gambar 2.4 Skema Kerja Three-Pass Protocol 21
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 25
Gamabr 3.2 Diagram Alir Sistem 29
Gambar 3.3 Diagram Alir Algoritma Massey-Omura 30
Gambar 3.4 Diagram Alir Algoritma Elias Gamma 32
Gambar 3.5 Diagram Alir Bangkitkan Bilangan Prima 34
Gambar 3.6 Diagram Alir Algoritma Lehmann 35
Gambar 3.7 Diagram Alir Bangkitkan Kunci Enkripsi-Dekripsi 36
Gambar 3.8 Diagram Use Case Kebutuhan Fungsional 38
Gambar 3.9 Sequence Diagram Sistem 39
Gambar 3.10 Activity Diagram 40
Gambar 3.11 Perancangan Antarmuka Halaman Beranda 41
Gambar 3.12 Perancangan Antarmuka Halaman Teori Singkat 42
Gambar 3.13 Perancangan Antarmuka Halaman Simulasi 43
Gambar 3.14 Perancangan Antarmuka Halaman Tentang Aplikasi 45
Gambar 4.1 Tampilan Halaman Beranda 54
Gambar 4.2 Tampilan Halaman Teori Singkat 55
Gambar 4.3 Tampilan Halaman Simulasi 55
Gambar 4.4 Tampilan Halaman Tentang Aplikasi 56
(6)
xi
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Listing Program A-1