hasil = (key_dA*eA) % (prima-1);
== 0 && key_dB!=eA && key_dB!=dA && key_dB!=eB)
}
Convert.ToInt32(sbitkom.Substring(awal,7), 2); char chr = (char)dec;
strkom.Split(new [] {"/*/"}, StringSplitOptions.None)[0]; //convert char to binary
StringBuilder binn = new StringBuilder(); foreach (char c in charkompresi){
string t =
return bin; }
public static string dekompresi(string strkompresi) string bin = bitkompresi(strkompresi);
string karakter =
strkompresi.Split(new [] {"/*/"}, StringSplitOptions.None)[1];
//ubah dari binari >> karakter string kode = "";
List<string> kodeER = new List<string>(); for (int y=0; y<karakter.Length; y++){ kodeER.Add(Code(y));
}
StringBuilder karasli = new StringBuilder(); foreach (char c in bin){
kode += c;
if (kodeER.Contains(kode)){
karasli.Append(karakter[kodeER.IndexOf(kode)] );
kode = ""; }
}
return karasli.ToString(); }
CURRICULUM VITAE
--- Data Pribadi
Nama : Novi Nuryanti Azharia Tempat/Tanggal Lahir : Medan / 08 November 1994 Tinggi/Berat Badan : 153 cm / 67 kg
Agama : Islam
Kewarganegaraan : Indonesia
Alamat Sekarang : Jl. Klambir V No.5 Medan Helvetia Alamat Orang Tua : Perum. Batu Batam Indah Blok. F No. 3
Perkantoran : Microsoft Office
--- Pengalaman Organisasi
[2009 – 2010] ROHIS SMA Negeri 4 Batam
[2012 – 2013] Anggota Kewirausahaan BKM Al-Khuwarizmi 2012 – 2013
--- Pengalaman Kepanitiaan
[2010] Ketua Buka Bersama dan Sahur on the Road BKM Al-Khuwarizmi [2012] Anggota Acara PORSENI IMILKOM 2012
[2012] Anggota Acara PMB IMILKOM 2012
--- Seminar
DAFTAR PUSTAKA
Abdullah, A. R. 2016. Perbandingan algoritma even-rodeh dan algoritma variable length binary encoding (VLBE) pada kompresi file teks. Skripsi. Universitas
Sumatera Utara
Blahut, R. E. 2014. Cryptography And Secure Communication. Cambridge University Press: New York.
Erdiansyah, U. 2014. Perbandingan algoritma elias delta code dan levenstein untuk kompresi file teks. Skripsi. Universitas Sumatera Utara.
Even, S. & Rodeh, M. 1978. Economical encoding of commas between strings. Communication of the ACM 21(4): 315-317.
Hoffstein, J., Pipher, J. & Silverman, J. H. 2014. An Introduction To Mathematical Cryptography. 2nd Edition. Springer: New York.
Hyka, D. & Benusi, A. 2014. Some cryptographic weakness and the ways to avoid them in ICT services of developing countries. European Journal of Sustainable Development 3(2):73-88.
Kanomori, Y. & Yoo, S. –M. 2009. Quantum Three-Pass Protocol: Key distribution using quantum superposition states. International Journal of Network Security & Its Applications (IJNSA) 1(2): 64-70.
Katz, J. & Lindell, Y. 2015. Introduction To Modern Cryptography. 2nd Edition. Chapman & Hall/CRC: Florida.
McAnlis, C. & Haecky, A. 2016. Understanding Compression. 1st Edition. O’Reilly Media: California.
Pramana, T. S. 2013. Implementasi massey-omura cryptosystem dan lehmann prime generator untuk keamanan email pada mozilla thunderbird. Skripsi.
Universitas Sumatera Utara.
Reza, M., Budiman, M. A. & Arisandi, D. 2012. Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura. Jurnal Dunia Teknologi Informasi 1(1): 20-27.
Solihin, M. 2013. Perancangan sistem pengamanan dan kompresi data teks dengan fibonacci encoding dan algoritma shannon-fano serta aloritma deflate. Skripsi.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem adalah fase awal pembangunan sistem dengan melakukan proses identifikasi komponen-komponen yang dibutuhkan oleh sistem. Analisis sistem dapat dilakukan dengan menentukan komponen yang menjadi input, proses yang dilakukan sistem, dan output dari sistem. Beberapa tahapan dapat dilakukan untuk menganalisis sebuah sistem, yaitu sebagai berikut:
3.1.1 Analisis masalah
Analisis masalah adalah proses identifikasi sebab dan akibat dibangunnya sebuah sistem agar sistem dapat berjalan sesuai dengan tujuan dibuatnya sistem. Permasalahan yang dibahas pada penelitian ini adalah perlunya pengamanan data yang berkaitan dengan aspek kerahasiaan file untuk menghindari bahaya seperti pemanipulasian isi file oleh pihak yang tidak bertanggungjawab. Masalah lain yang akan dibahas adalah diperlukannya suatu metode untuk mengecilkan atau mengkompresi ukuran file terenkripsi dengan bertujuan untuk mempermudah dan mempercepat proses pengiriman file. Selain itu, algoritma pengamanan data yang akan digunakan menganut sistem Three-Pass-Protocol sehingga kebutuhan akan sebuah metode kompresi data menjadi semakin besar. Pengamanan data akan dilakukan dengan menggunakan algoritma Massey-Omura dan kompresi data akan dilakukan dengan menggunakan algoritma Even-Rodeh. File dokumen yang digunakan dalam penelitian ini adalah file berekstensi *.docx.
Gambar 3.1 Diagram Ishikawa Analisis Masalah
Gambar 3.2 Alur Proses Enkripsi-Dekripsi dan Kompresi-Dekompresi Sistem
3.1.2 Analisis persyaratan
Analisis persyaratan merupakan tahapan yang dilakukan untuk menentukan kebutuhan dan kondisi yang harus dipenuhi ketika membangun sebuah sistem. Analisis persyaratan terbagi dua, yaitu analisis fungsional dan analisis non-fungsional.
1) Analisis Fungsional
Analisis fungsional dilakukan dengan menerjemahkan kebutuhan sistem menjadi fungsi-fungsi detail mengenai hal-hal yang harus dipenuhi pada sistem yang dirancang. Adapun persyaratan fungsional yang harus dipenuhi sistem yaitu: a. Sistem harus mampu melakukan enkripsi data terhadap file dokumen dengan
ekstensi file *.docx dengan algoritma Massey-Omura.
b. Sistem harus mampu melakukan kompresi data dengan algoritma Even-Rodeh terhadap file dokumen yang telah dienkripsi.
d. Sistem harus mampu melakukan dekompresi data terhadap hasil kompresi dengan algoritma Even-Rodeh menjadi data asli kembali.
2) Analisis Non-Fungsional
Analisis non-fungsional dilakukan dengan menganalisis bagaimana seharusnya sebuah sistem melakukan sesuatu yang akan digunakan untuk menilai kinerja sistem dan menjadi penentu apakah daya guna sistem sudah baik atau belum. Adapun persyaratan non-fungsional yang harus dipenuhi sistem adalah:
a. Performa
Sistem yang dibangun harus dapat melakukan proses dan menunjukkan hasil dari enkripsi-kompresi data dan dekripsi-dekompresi data tersebut.
b. Mudah digunakan (User friendly)
Sistem yang dibangun memiliki tampilan yang user friendly agar mudah dipelajari dan digunakan oleh pengguna.
c. Ekonomis
Sistem harus dapat bekerja dengan baik tanpa harus mengeluarkan biaya tambahan dalam penggunaan perangkat keras maupun perangkat lunak.
d. Dokumentasi
Sistem yang dibangun dapat menyimpan data hasil enkripsi serta dapat menyimpan hasil kompresi.
e. Kontrol
Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem dapat terjaga dan memberikan hasil yang sesuai dengan keinginan pengguna.
3.1.3 Pemodelan sistem
Use case pada dasarnya adalah rangkaian sekelompok proses yang saling terkait
dan membentuk sebuah sistem. Sedangkan use case diagram adalah diagram use case yang digunakan untuk menggambarkan secara ringkas mengenai User yang menggunakan sistem dan proses-proses yang dilakukan oleh sistem.
Use case diagram diawali dengan menginisialisasi User yang disebut Aktor yang
akan menginisiasi kegiatan sistem. User berperan di dalam sistem Pengirim (Sender) atau Penerima (Recipient). User dapat melakukan proses enkripsi-dekripsi dan kompresi-dekompresi dengan sistem. Sebelum bertukar informasi, kedua pihak akan membangkitkan private key yang akan menjadi kunci enkripsi dan dekripsi berdasarkan public key yaitu bilangan prima yang dibangkitkan oleh pihak Pengirim. Use case diagram sistem dalam penelitian ini dapat dilihat pada Gambar 3.3.
Sequence diagram adalah suatu diagram yang menampilkan interaksi-interaksi
antar objek di dalam sistem yang disusun berdasarkan sebuah urutan. Sequence Diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian atau event. Sequence Diagram sistem dapat dilihat pada Gambar 3.4.
Gambar 3.4 Sequnce Diagram Sistem
Activity Diagram adalah sebuah diagram yang menggambarkan aliran aktivitas
yang terjadi pada setiap use case. Activity Diagram digunakan untuk menampilkan langkah-langkah pengerjaan proses sistem. Terdapat 9 proses yang dilakukan sistem pada penelitian ini yaitu pembangkit bilangan prima, pembangkit kunci pengirim, pembangkit kunci penerima, enkripsi 1, enkripsi 2, dekripsi 1, dekripsi 2, kompresi dan dekompresi teks. Activity Diagram untuk Pembangkit Bilangan Prima dapat dilihat pada Gambar 3.5.
Gambar 3.5. Activity Diagram Pembangkit Bilangan Prima
Activity Diagram untuk Pembangkit Kunci A dapat dilihat pada Gambar 3.6.
Activity Diagram untuk Pembangkit Kunci B dapat dilihat pada Gambar 3.7.
Activity Diagram untuk Enkripsi1 dapat dilihat pada Gambar 3.8.
Activity Diagram untuk Enkripsi2 dapat dilihat pada Gambar 3.9.
Activity Diagram untuk Dekripsi1 dapat dilihat pada Gambar 3.10.
Activity Diagram untuk Dekripsi2 dapat dilihat pada Gambar 3.11.
Gambar 3.11. Activity Diagram Dekripsi2 Activity Diagram untuk Kompresi dapat dilihat pada Gambar 3.12.
Activity Diagram untuk Dekompresi dapat dilihat pada Gambar 3.13.
Gambar 3.13. Activity Diagram Dekompresi
3.1.4 Pseudocode
1) Pseudocode Pembangkit Bilangan Prima
Berikut adalah pseudocode untuk Pembangkit Bilangan Prima FUNCTION bilprima(random)
counter←0
FOR i←2 TO random-1 DO
IF (random mod i == 0) THEN Counter←counter + 1 end if
END FOR
IF(counter > 0) THEN RETURN 0
ELSE
RETURN random END IF
END FUNCTION
2) Pseudocode GCD
Berikut adalah pseudocode untuk GCD FUNCTION gcd(m, n)
Fungsi GCD digunakan oleh fungsi kunci_e ketika mencari kunci enkripsi, untuk mencari faktor persekutuan terbesar dari nilai e yang dibangkitkan secara acak dan bilangan prima-1.
3) Proses Pembangkit Kunci Enkripsi
Berikut adalah pseudocode untuk proses Pembangkit Kunci Enkripsi FUNCTION kunci_e(prima)
Bila bilangan prima sudah didapatkan melalui fungsi bilprima, dilakukan random calon kunci enkripsi (e) dengan fungsi kunci_e dan rentang nilai
1 <�< ����� −1. Syarat yang harus dipenuhi agar nilai dapat dipakai sebagai kunci e adalah GCD dari random dan prima-1 adalah 1. Bila GCD bernilai 1 maka e memenuhi syarat sebagai kunci enkripsi.
4) Proses Pembangkit Kunci Dekripsi
Fungsi kunci_d digunakan untuk mencari kunci dekripsi (d). Pada fungsi ini dilakukan perhitungan inversi modulo dari e dengan rumus ��� (�������� − 1) = 1 dan menyimpan hasil perhitungan pada variabel hasil. Dilakukan operasi perulangan dengan menambahkan 1 kepada d tiap kali perulangan dan berhenti ketika nilai hasil adalah 1 atau 0. Apabila hasil bernilai 0, maka fungsi akan mengembalikan nilai 0. Sedangkan bila hasil bernilai 0, fungsi akan mengeluarkan d sebagai kunci dekripsi.
5) Pseudocode Proses Enkripsi
Berikut adalah pseudocode untuk proses Enkripsi FUNCTION enkripsi(plaintext, prima, e) FOREACH c IN plaintxt DO
Pada proses enkripsi, karakter yang akan diproses ditampung pada sebuah list dengan nama bitsplain. Setiap karakter teks kemudian dikonversi menjadi nilai interger yang merepresentasikan karakter tersebut dan menyimpan nilai ke dalam variabel p. Nilai integer karakter dikomputasikan sesuai dengan rumus enkripsi algoritma Massey-Omura yaitu ��� (����) dan disimpan di dalam variabel c. Hasil enkripsi disimpan pada variabel text. Spasi diberikan diantara hasil komputasi dengan tujuan untuk memisahkan setiap integer karakter. Proses ini akan menghasilkan output Cipherteks dalam bentuk angka.
6) Pseudocode Proses Dekripsi
END FOR RETURN text
Cipherteks yang diproses untuk didekripsi adalah dalam bentuk angka yang dipisahkan oleh spasi, maka dilakukan split dengan tanda pemisah spasi dan menampung cipherteks kedalam list bitsplain. cipherteks diubah menjadi integer dan disimpan pada variabel c. Kemudian karakter cipherteks dikomputasikan sesuai dengan rumus dekripsi algoritma Massey-Omura yaitu� = �� ���� dan menyimpan hasil di dalam variabel p. Bilangan bulat pada p
dikonversi kedalam bentuk karakter dan disimpan pada variabel asli sehingga didapatkan teks awal.
7) Pseudocode Proses Kompresi
Berikut adalah pseudocode untuk proses Kompresi FUNCTION kompresi(kalimat)
sbitkom←ConvertToString(bitkom) awal←0
FOR i←7 TO length(sbitkom)
Proses kompresi dimulai dengan mengurutkan karakter berdasarkan frekuensi kemunculan karakter. Hasil pengurutan karakter disimpan di dalam variabel
srtChar. Setelah dilakukan pengurutan, dibentuk sebuah string yang berisi bit kode Even-Rodeh yang merepresentasikan karakter teks dan menyimpannya ke dalam variabel bitkom. Dilakukan perhitungan mod panjang bit kompresi dengan 7. Ketika hasil sisa bagi tidak sama dengan 0, tambahkan (append) padding “0” hingga hasil sisa bagi menjadi 0 dan meyimpan jumlah dari padding
yang ditambah dalam variabel m untuk digunakan ketika menuliskan flag bits. Selanjutnya, nilai pada variabel m dikonversi ke dalam bentuk binari yang disimpan ke dalam variabel bitflag, kemudian ditambahkan angka 0 didepannya sehingga jumlah bit menjadi tujuh digit. Apabila tidak ada padding yang ditambahkan, maka flag bits yang dituliskan hanya angka 0 berjumlah tujuh digit. Flag bits ditulis setelah padding agar sistem dapat mengetahui berapa banyak padding yang ditambahkan pada string bit kompresi.
Bit hasil kompresi ditampung pada variabel sbitkom untuk diubah menjadi ke dalam bentuk karakter. Tahap perubahan bit kompresi menjadi karakter kompresi dimulai dengan mengambil bagian sbitkom mulai dari indeks awal
yaitu indeks-0 sebanyak 7 digit dan mengubahnya ke dalam bentuk integer. Hasil konversi disimpan dalam variabel dec. Nilai integer pada variabel dec
dikonversi kedalam bentuk char dan ditampung dalam variabel chr. Karakter pada variabel chr ditambahkan kedalam List charkom dan didapatkan karakter hasil kompresi. Simbol “/*/” ditambahkan pada charkom sebagai pemisah karakter kompresi dengan karakter asli. Dilakukan operasi perulangan untuk menuliskan karakter asli ke dalam charkom.
8) Pseudocode Proses Dekompresi
Berikut adalah pseudocode untuk proses Dekompresi FUNCTION dekompresi(strkom)
charkompresi←strkom.Split(new[] {"/*/"}, [0]) FOREACH c IN charkompresi DO
t←ConvertToString(ConvertToInt(c),2)) IF (length(t) <= 7)
FOR i←0 TO 7-length(t)
bin←Append(t) ELSE
bin←Append(t) END IF
END FOR
bitf←ConvertToInt(bin.Substring(length(bin)-7),2) IF(bitf == 0)
bin←bin.Substring(0,length(bin)-7) ELSE
bin←bin.Substring(0,length(bin)-(7+bitf)) END IF
Proses dekompresi dimulai dengan menampung karakter kompresi ke dalam variabel charkompresi dimana indeks karakter yang diambil dimulai dari 0 hingga simbol “/*/”. Setiap karakter kompresi diubah menjadi binari dan menyimpan nilai pada variabel t. Ditambahkan angka 0 didepan bit jika digit kurang dari tujuh dan menyimpan hasil pada variabel bin. Kemudian dilakukan penghapusan padding dan flag bits dari string bit kompresi dimulai dengan mengambil tujuh bit terakhir dan mengkonversi nilai kedalam bentuk integer. Nilai disimpan pada variabel bitf. Dilakukan pengecekan dengan kondisi bitf
bernilai 0 atau tidak. Bila bitf bernilai 0, maka dilakukan pemotongan indeks sehingga nilai yang diambil untuk variabel bin dimulai dari indeks 0 hingga indeks akhir kurang 7. Jika bitf tidak bernilai 0, maka indeks yang diambil untuk bin dimulai dari 0 hingga indeks akhir – (7 + bitf). Kode Even-Rodeh dibangkitkan sesuai dengan jumlah karakter asli dengan memanggil fungsi Code
ke-1 ditambahkan ke kode dan dilakukan pengecekan ulang. Penambahan akan terus dilanjutkan hingga kode terdapat pada list kodeER dan merepresentasikan sebuah karakter asli. Karakter asli yang didapatkan ditampung pada variabel
karasli.
9) Pseudocode Kode Even-Rodeh
Berikut adalah pseudocode untuk proses Pembangkit Kode Even-Rodeh FUNCTION Code(n)
Pembangkit kode Even-Rodeh digunakan oleh proses Encoding dan Decoding untuk membangkitkan kode. Keluaran dari proses ini adalah kode Even-Rodeh sesuai dengan nilai parameter masukan (n). Pembangkitan kode dimulai dengan mengecek apakah nilai n lebih kecil dari 4 atau tidak. Bila n lebih kecil dari 4, maka ubah n ke dalam bentuk binari dan simpan sebagai ns, kemudian angka 0 ditambahkan hingga jumlah bit kode menjadi 3 dan append (tambahkan) ns. Bila n lebih besar sama dengan 4, append “0” pada kode dan lakukan operasi perulangan selama n lebih besar sama dengan 4. Nilai n dikonversi menjadi biner dan disimpan pada variabel ns, kemudian nilai ns ditambahkan ke kode pada indeks ke-0. Jadikan panjang bit ns sebagai nilai dari n.
3.1.5 Flowchart
1) Flowchart Sistem
terhadap file yang telah dienkripsi dengan algoritma Even-Rodeh. Pertukaran pesan akan dilakukan dalam tiga tahap dalam bentuk file kompresi. Proses kompresi akan dilakukan setiap proses enkripsi atau dekripsi selesai dilakukan kecuali pada proses Dekripsi2. Dan proses dekompresi dilakukan sebelum memulai proses enkripsi atau dekripsi kecuali pada Enkripsi1. Flowchart sistem dapat dilihat pada Gambar 3.14.
2) Flowchart Pembangkit Kunci
Pembangkit kunci dimulai setelah membangkitkan bilangan prima dan melakukan random kunci enkripsi eA atau eB dengan syarat 1 <��|��< ����� −1. Kemudian dilakukan pengecekan nilai GCD(��|��,����� −1). Bila GCD bernilai 1 maka eA atau eB memenuhi syarat untuk dipakai sebagai kunci enkripsi. Setelah mendapatkan kunci enkripsi, dilakukan pencarian kunci dekripsi dA atau dB dengan mencari invers eA atau eB mod p-1 melalui perhitungan ��� (�������� −1) = 1. Flowchart Pembangkit kunci dapat dilihat pada Gambar 3.15.
3) Flowchart Enkripsi1 dan Enkripsi2
Dapat dilihat pada Gambar 3.16, Enkripsi1 dimulai dengan menginput teks asli, bilangan prima dan kunci enkripsi Sender (eA). Teks asli kemudian dikonversi menjadi integer berdasarkan Tabel ASCII. Setelah dikonversi, dilakukan perhitungan C1 dan didapatkan hasil Cipherteks1. Proses Enkripsi1 dilakukan oleh Sender.
Enkripsi2 dilakukan oleh Recipient dan dimulai dengan menginput Cipherteks1, bilangan prima, dan kunci enkripsi Recipient (eB). Kemudian dilakukan proses perhitungan C2 dan didapatkan Cipherteks2.
Gambar 3.16. Flowchart Enkripsi1 dan Enkripsi2
4) Flowchart Dekripsi1 dan Dekripsi2
Seperti pada Gambar 3.17. Dekripsi1 dimulai dengan menginput Cipherteks2, bilangan prima dan kunci dekripsi dA. Dilakukan perhitungan C3 dan menghasilkan Cipherteks3. Proses Dekripsi1 dilakukan oleh Sender.
sehingga didapatkan integer dari plainteks. Kemudian Integer plainteks dikonversi menjadi karakter kembali.
Gambar 3.17. Flowchart Dekripsi1 dan Dekripsi2
5) Flowchart Even-Rodeh Code
Gambar 3.18. Flowchart Even-Rodeh Code
Ya
Ya Tidak
Tidak
Ya Tidak
Kode = “0” Mulai
Input n
Output kode
Selesai n < 4
kode = ns + kode
n = ns.length n ≥ 4 kode = “”
ns = ConvertToBin(n)
ns = ConvertToBin(n)
i < 3 - ns.Length
kode = kode + “0”
kode = kode + ns i = 0
3.2 Perancangan Sistem
Berdasarkan analisis yang dilakukan, diperoleh gambaran yang digunakan untuk melakukan preancangan antarmuka pengguna yang sesuai dan dapat mendukung fungsionalitas sistem. Terdapat 5 buah Form yang akan ditampilkan pada sistem yaitu Form Beranda, Form Pembangkit Kunci, Form Pengirim, Form Penerima, Form
Bantuan Form Tentang. 3.2.1 Halaman Beranda
Halaman Beranda akan terbuka ketika sistem pertama kali dijalankan dan ketika user memilih Tab Beranda.
Gambar 3.19. Perancangan Form Beranda
Komponen yang digunakan untuk perancangan interface Form Beranda berdasarkan Gambar 3.19. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci sistem.
3) Tab Pengirim berfungsi untuk menampilkan halaman Pengirim. 4) Tab Penerima berfunngsi untuk menampilkan halaman Penerima.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang. 7) ListBox berisi keterangan dari sistem.
8) PictureBox berisi gambar logo.
1 2 3 4 5 6
7 8
7
3.2.2 Halaman Pembangkit kunci
Halaman Pembangkit Kunci berisi interface yang digunakan User untuk membangkitkan kunci sebelum melakukan proses enkripsi dan dekripsi.
Gambar 3.20. Perancangan Form Pembangkit Kunci
Komponen yang digunakan untuk perancangan interface Form Pembangkit Kunci berdasarkan Gambar 3.20. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci sistem.
3) Tab Penerima berfungsi untuk menampilkan halaman Penerima. 4) Tab Pengirim berfunngsi untuk menampilkan halaman Pengirim.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang.
7) GroupBox (Bilangan Prima) berisi komponen-komponen yang digunakan untuk membangkitkan bilangan prima.
8) ComboBox untuk memilih jumlah digit bilangan prima yang akan dibangkitkan. 9) TextBox untuk menampilkan bilangan prima
10) Button (Generate Prima) untuk membangkitkan bilangan prima
11) GroupBox berisi komponen-komponen yang digunakan oleh User untuk membangkitkan kunci enkripsi dan dekripsi.
12) TextBox untuk menampilkan nilai kunci enkripsi 13) TextBox untuk menampilkan nilai kunci dekripsi
14) Button (Generate Kunci) untuk membangkitkan kunci enkripsi dan dekripsi. 15) Button (Simpan) untuk menyimpan kunci enkripsi dan dekripsi.
16) TextBox untuk menampilkan bilangan prima 17) Button (Browse) untuk memilih file cipherteks
3.2.3 Halaman Pengirim
Halaman Pengirim berisi komponen-komponen yang akan digunakan Pengirim untuk melakukan proses enkripsi dan dekripsi.
Gambar 3.21. Perancangan Form Pengirim
Komponen yang digunakan untuk perancangan interface Form Enkripsi berdasarkan Gambar 3.21. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci.
3) Tab Pengirim berfungsi untuk menampilkan halaman Pengirim. 4) Tab Penerima berfunngsi untuk menampilkan halaman Penerima.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang.
7) GroupBox (Enkripsi Massey-Omura) berisi komponen-komponen yang digunakan oleh Pengirim untuk mengenkripsi dan mengkompresi pesan.
8) GroupBox (Dekripsi Massey-Omura) berisi komponen-komponen yang digunakan oleh Pengirim untuk mendekripsi, mengkompresi, dan mendekompresi pesan.
9) GroupBox (Kunci Enkripsi/Kunci Dekripsi) berisi komponen-komponen untuk menampilkan kunci enkripsi atau dekripsi yang akan dipakai User.
10) GroupBox (Enkripsi Teks/Dekripsi Teks) berisi komponen-komponen untuk melakukan proses enkripsi atau dekripsi.
11) GroupBox (Kompresi Even-Rodeh) berisi komponen-komponen untuk melakukan proses kompresi.
12) GroupBox (Informasi) berisi komponen-komponen untuk menampilkan waktu proses dan Rc, Cr, dan Rd.
13) groupBox (Dekompresi Even-Rodeh) berisi komponen-komponen untuk melakukan proses dekompresi.
14) TextBox berfungsi untuk menampilkan bilangan prima.
15) TextBox berfungsi untuk menampilkan kunci enkripsi atau dekripsi. 16) Button (Browse) berfungsi untuk memilih file kunci.
17) TextBox berfungsi untuk menampilkan path file yang akan dienkripsi atau didekripsi.
18) Button (Browse) berfungsi untuk memilih file dokumen.
19) RichTextBox berfungsi untuk menampilkan teks yang akan dienkripsi atau didekripsi.
20) RichTextBox berfungsi untuk menampilkan teks yang telah dienkripsi atau didekripsi.
21) Button (Enkripsi/Dekripsi) berfungsi untuk mengenkripsi atau mendekripsi teks. 22) Button (Simpan) berfungsi untuk menyimpan file hasil enkripsi atau dekripsi. 23) TextBox berfungsi untuk menampilkan path file enkripsi yang akan dikompresi. 24) Button (Browse) berfungsi untuk menampilkan direktori penyimpanan file
enkripsi atau dekripsi.
25) Button (Kompresi) berfungsi untuk mengkompresi file.
28) TextBox berfungsi untuk menampilkan Ratio of Compression. 29) TextBox berfungsi untuk menampilkan Compression Ratio. 30) TextBox berfungsi untuk menampilkan Redudancy.
31) TeksBox berfungsi untuk menampilkan waktu dekompresi.
32) TextBox berfungsi untuk menampilkan path file yang akan dikompresi 33) Button (Browse) berfungsi untuk menampilkan direktori file kompresi. 34) Button dekompresi untuk mendekompresi file.
3.2.4 Halaman Penerima
Halaman Penerima berisi komponen-komponen yang digunakan oleh Penerima untuk melakukan proses enkripsi dan dekripsi.
Gambar 3.22. Perancangan Form Penerima
Komponen yang digunakan untuk perancangan interface Form Penerima berdasarkan Gambar 3.22. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci.
3) Tab Pengirim berfungsi untuk menampilkan halaman Pengirim. 4) Tab Penerima berfunngsi untuk menampilkan halaman Penerima.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang.
7) GroupBox (Enkripsi Massey-Omura) berisi komponen-komponen yang digunakan oleh Penerima untuk mengenkripsi, mengkompresi, dan mendekompresi pesan.
8) GroupBox (Dekripsi Massey-Omura) berisi komponen-komponen yang digunakan oleh Penerima untuk mendekripsi dan mendekompresi pesan.
9) GroupBox (Dekompresi Even-Rodeh) berisi komponen untuk proses dekompresi. 10) GroupBox (Kunci Enkripsi/Dekripsi) berisi komponen-komponen untuk
menampilkan kunci enkripsi atau dekripsi yang akan digunakan User.
11) GroupBox (Dekripsi Teks) berisi komponen-komponen untuk proses enkripsi atau dekripsi teks.
12) GroupBox (Kompresi Even-Rodeh) berisi komponen untuk melakukan kompresi. 13) GroupBox (Informasi) berisi komponen-komponen untuk menampilkan waktu
proses dan Rc, Cr, dan Rd.
14) TextBox berfungsi untuk menampilkan path file yang akan didekompresi 15) Button (Browse) berfungsi untuk memilih file dokumen enkripsi atau dekripsi. 16) Button (Dekompresi) berfungsi untuk mendekompresi teks.
17) TextBox berfungsi untuk menampilkan bilangan prima.
18) TextBox berfungsi untuk menampilkan kunci enkripsi atau dekripsi. 19) Button (Browse) berfungsi untuk memilih file kunci.
20) RichTextBox berfungsi untuk menampilkan teks yang akan dienkripsi atau didekripsi.
21) RichTextBox berfungsi untuk menampilkan teks yang telah dienrkripsi atau didekripsi.
22) Button (Enkripsi/Dekripsi) berfungsi untuk mengenkripsi atau mendekripsi teks. 23) Button (Simpan) berfungsi untuk menyimpan teks hasil enkripsi atau dekripsi. 24) TextBox berfungsi untuk menampilkan path file enkripsi atau dekripsi.
25) Button (Browse) untuk membuka membuka direktori penyimpanan file enkripsi atau dekripsi dan memilih file.
26) Button (Kompresi) untuk mengkompresi teks.
28) TextBox berfungsi untuk nenampilkan waktu kompresi. 29) TeksBox berfungsi untuk menampilkan waktu dekompresi. 30) TextBox berfungsi untuk menampilkan Ratio of Compression. 31) TextBox berfungsi untuk menampilkan Compression Ratio. 32) TextBox berfungsi untuk menampilkan Redudancy.
3.2.5 Halaman Bantuan
Halaman Bantuan berisi petunjuk langkah-langkah penggunaan sistem.
Gambar 3.23. Perancangan Form Bantuan
Komponen yang digunakan untuk perancangan interface Form Bantuan berdasarkan Gambar 3.23. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci sistem.
3) Tab Pengirim berfungsi untuk menampilkan halaman Pengirim.
4) Tab Penerima berfunngsi untuk menampilkan halaman Penerima.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang.
7) ComboBox Pembangkit Kunci Pengirim berisi petunjuk langkah-langkah pembangkit kunci oleh Pengirim.
8) ComboBox Enkripsi Pengirim berisi penjelasan langkah enkripsi oleh Pengirim.
9) ComboBox Dekripsi Pengirim berisi penjelasan langkah dekripsi oleh Pengirim.
1 2 3 4 5 6
12 11 7
8
9
10) ComboBox Pembangkit Kunci Penerima berisi petunjuk langkah-langkah pembangkit kunci oleh Penerima.
11) ComboBox Enkripsi Penerima berisi penjelasan langkah enkripsi oleh Penerima.
12) ComboBox Dekripsi Penerima berisi penjelasan langkah dekripsi oleh Penerima.
3.2.6 Halaman Tentang
Halaman Tentang berisi mengenai judul dari sistem yang dibuat beserta informasi programmer.
Gambar 3.24. Perancangan Form Tentang
Komponen yang digunakan untuk perancangan interface Form Tentang berdasarkan Gambar 3.24. adalah sebagai berikut:
1) Tab Beranda berfungsi untuk menampilkan tampilan Beranda dari sistem.
2) Tab Pembangkit Kunci berfungsi untuk menampilkan halaman Pembangkit Kunci sistem.
3) Tab Pengirim berfungsi untuk menampilkan halaman Pengirim. 4) Tab Penerima berfunngsi untuk menampilkan halaman Penerima.
5) Tab Bantuan berfungsi untuk menampilkan halaman Bantuan yang berisi penjelasan cara pemakaian sistem.
6) Tab Tentang berfungsi untuk menampilkan halaman Tentang. 7) ListBox berisi keterangan dari sistem.
1 2 3 4 5 6
7
7
7
3.3 Tahapan Sistem
3.3.1 Tahapan algoritma kriptografi Massey-Omura
Sebuah pesan akan dikirimkan oleh Sender kepada Recipient dalam bentuk file dokumen. Sebelum pesan dikirimkan, dilakukan proses pengamanan terhadap isi file dokumen. File dokumen memiliki isi string “ASIMETRIS”. Langkah-langkah penyandian pesan dengan menggunakan algoritma Massey-Omura adalah sbb:
1) Proses Enkripsi1 algoritma Massey-Omura
a. Dibangkitkan sebuah bilangan prima > 128. Bilangan prima yang digunakan adalah 263.
b. Sender membangkitkan sebuah bilangan untuk digunakan sebagai kunci enkripsi dengan syarat:
1) 1 <�� <����� −1.
2) GCD(��,����� −1) = 1 atau eA dan prima-1 adalah coprime.
Sender memilih 145 sebagai eA dan menghitung GCD(��,����� −1) dengan melakukan perhitungan sebagai berikut:
145 mod 262 = 145 c. Sender membangkitkan kunci dekripsi dengan menghitung invers eA dan
d. Ubah pesan yang akan dikirim menjadi integer berdasarkan tabel ASCII.
Hasil dari Enkripsi1 adalah Cipherteks1 “239 151 5 215 25 188 97 5 151”. Sender kemudian mengirim C1 kepada Recipient.
2) Proses Enkripsi2 (Recipient) algoritma Massey-Omura
a. Recipient membangkitkan sebuah bilangan untuk digunakan sebagai kunci enkripsi dengan syarat:
1) 1 <��< ����� −1
2) GCD(��,����� −1) = 1 atau eB dan prima-1 adalah coprime.
Recipient memilih 125 sebagai eB dan menghitung GCD(��,����� −1) dengan melakukan perhitungan sebagai berikut:
125 mod 262 = 145 262 mod 145 = 12 145 mod 12 = 1
Maka, GCD(��,����� −1) = 1 dan 125 dapat digunakan sebagai kunci eB. b. Recipient membangkitkan kunci dekripsi dengan menghitung invers eB dan
25 243
Hasil dari Enkripsi2 adalah Cipherteks2 “7 69 56 259 243 175 252 56 69”. Recipient kemudian mengirim C2 kepada Sender.
3) Proses Dekripsi1 (Sender) algoritma Massey-Omura
Dekripsi1 dilakukan oleh Sender dengan menghitung �3 = �2�� ����.
4) Proses Dekripsi1 (Recipient) algoritma Massey-Omura
b. M diubah kembali menjadi karakter berdasarkan tabel ASCII dan didapatkan Plainteks = “ASIMETRIS”.
3.3.2 Tahapan algoritma Even-Rodeh
1) Proses Kompresi algoritma Even-Rodeh
Berikut ini adalah contoh proses kompresi file teks dengan algoritma Even-Rodeh dengan string “FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI”. Lakukan pengurutan karakter berdasarkan frekuensi kemunculan karakter. Pengurutan karakter dapat dilihat pada Tabel 3.3.
Tabel 3.3. Bit Karakter sebelum Kompresi
13 E 2 69 01000101 8 16
Kemudian, ganti bit karakter dengan bit kode Even-Rodeh dan didapatkan bit karakter yang sudah dikompresi sebagai berikut:
Tabel 3.4. Bit Karakter setelah Kompresi n char Frekuensi Kode
Even-Dari Tabel 3.4 dapat dibentuk string bit kompresi dari string asli “FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI” dan didapatkan string bit dengan uraian sebagai berikut:
10010110 001 1000 1010 1110 10010000 001 10011000 000 010 1110 F A K U L T A S Sp I L 10010010 1010 000 1000 011 10010010 10011110 1010 10010000 10011010 M U Sp K O M P U T E 10011100 000 101100000 001 10010100 000 10010000 10011010 1000
R Sp D A N Sp T E K 10010100 011 1110 011 101100010 010 000 010 10010100 10010110 011
N O L O G I Sp I N F O 10011100 10010010 001 10011000 010
Lakukan penambahan bit padding dan flagging pada akhir string bit. Hitung sisa bagi panjang string bit dengan tujuh. karena hasil dari sisa bagi adalah 4 maka ditambahkan padding berupa angka 0 sebanyak 3 buah “000” untuk mencukupi jumlah bit ketika dibagi tujuh dan flag bits “0000011” yang menunjukkan jumlah penambahan padding dalam bentuk binari sehingga string bit menjadi:
“10010110001100010101110100100000011001100000001011101001001010100 00100001110010010100111101010100100001001101010011100000101100000 00110010100000100100001001101010001001010001111100111011000100100 0001010010100100101100111001110010010010001100110000100000000011”. Total bit setelah penambahan padding berjumlah 264 bit.
Sebelum menuliskan string kompresi pada file, konversi bit menjadi karakter berdasarkan tabel ASCII. Maka, didapatkan hasil karakter kompresi sebagai berikut:
1001011 0001100 0101011 1010010 0000011 0011000 0000101 1101001
K Œ « Ò ETX CAN … i
0010101 0000100 0011100 1001010 0111101 0101001 0000100 1101010
• EOT FS J = ) EOT j
0111000 0010110 0000001 1001010 0000100 1000010 0110101 0001001
8 SYN SOH J EOT B 5 HT
0100011 1110011 1011000 1001000 0010100 1010010 0101100 1110011
# s X H DC4 R , s
1001001 0010001 1001100 0010000 0000011
a. Ratio of Compression (Rc)
I DC1 L DLE ETX String hasil kompresi yaitu:
K Œ « Ò ETXCAN … i • EOTFS J = ) EOT j 8 SYN SOH J EOT B 5 HT # s X H
DC4 R , s I DC1 L DLEETX
Dari proses kompresi, kinerja kompresi algoritma dapat dihitung dengan cara sebagai berikut:
�� =������������������������� ����������������ℎ��������
�� =368
b. Compression Ratio (Cr)
2) Proses Dekompresi algoritma Even-Rodeh
Proses dekompresi teks dimulai dengan mengubah karakter kompresi menjadi string bit. Didapatkan string bit hasil kompresi yaitu:
“10010110001100010101110100100000011001100000001011101001001010100 00100001110010010100111101010100100001001101010011100000101100000 00110010100000100100001001101010001001010001111100111011000100100 0001010010100100101100111001110010010010001100110000100000000011”. Sebelum string bit dirubah menjadi karakter asli , tentukan panjang string yang harus dibaca dengan menghapus padding dan flag bits dari string bit. Lakukan pembacaan flag bits yaitu tujuh bit terakhit string untuk mengetahui berapa jumlah padding yang ditambahkan pada string. Tujuh bit terakhir string bit adalah “0000011” atau sama dengan 3 dalam bentuk desimal. Maka dapat diketahui bahwa dilakukan penambahan 3 bit diakhir string, sehingga indeks terakhir (n) untuk pembacaan string bit adalah panjang string bit dikurangi dengan flag bits (7 bit) ditambah jumlah padding yaitu 7 atau dapat ditulis n = panjang string bit – (7 + padding).
terdapat pada kode tabel dan mewakili karakter Spasi. Proses ini akan terus dilakukan hingga indeks ke-n, sehingga diperoleh string asli yaitu “FAKULTAS
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
Implementasi sistem merupakan tahap penerapan sistem dalam bentuk perangkat lunak maupun keras berdasarkan hasil yang diperoleh pada tahap analisis dan perancangan sistem. Sistem dibangun dengan menggunakan prosesor Intel Core i3 2,3 GHz, RAM 2GB, sistem operasi Microsoft Windows 8.1 Enterprise dan bahasa pemrograman C#. Perangkat lunak yang digunakan sebagai Integrated Development Environment (IDE) untuk C# adalah SharpDevelop versi 4.4.1.9729-7196a277.
Implementasi sistem dibagi menjadi 6 form yaitu form beranda sebagai halaman utama, form pembangkit kunci untuk menampilkan menu pembangkit kunci, form enkripsi untuk menampilkan menu enkripsi, form dekripsi untuk menampilkan
menu dekripsi, form bantuan untuk menampilkan petunjuk pemakaian aplikasi, dan form tentang untuk menampilkan informasi aplikasi dan profil penulis.
4.1.1 Halaman Beranda
Gambar 4.1. Tampilan Halaman Beranda
4.1.2 Halaman Pembangkit Kunci
Tab Pembangkit Kunci merupakan form yang digunakan oleh User untuk
membangkitkan kunci enkripsi dan dekripsi ketika pertama kali mengenkripsi pesan. Terdapat beberapa komponen interface untuk mendukung penggunaan proses seperti combobox untuk menentukan digit bilangan prima, textbox untuk menampilkan nilai
bilangan prima dan nilai kunci, dan button untuk memulai proses membangkitkan bilangan prima dan kunci. Tampilan tab pembangkit kunci dapat dilihat pada Gambar 4.2.
4.1.3 Halaman Pengirim
Tab pengirim digunakan oleh Sender untuk melakukan proses enkripsi atau dekripsi.
Pada form pengirim terdapat beberapa komponen interface pendukung proses antara lain textbox untuk menampilkan kunci enkripsi atau dekri pengirimsi, direktori file yang akan dilakukan enkripsi, dekripsi, kompresi, atau dekompresi dan informasi mengenai proses. Richtextbox untuk menampilkan teks sebelum dan sesudah enkripsi, dan button untuk memulai proses enkripsi, dekripsi, kompresi atau dekompresi. Tampilan halaman enkripsi dapat dilihat pada Gambar 4.3.
Gambar 4.3. Tampilan Halaman Pengirim
4.1.4 Halaman Penerima
Tab penerima digunakan oleh Recipient untuk melakukan proses enkripsi dan
Gambar 4.4 Tampilan Halaman Penerima
4.1.5 Halaman Bantuan
Tab bantuan berisi petunjuk penggunaan aplikasi yang terbagi atas 6 bagian yaitu
petunjuk pembangkit kunci pengirim dan penerima, enkripsi dan dekripsi pengirim, enkripsi dan dekripsi penerima. Tampilan halaman bantuan dapat dilihat pada Gambar 4.5.
4.1.6 Halaman Tentang
Tab tentang berisi informasi mengenai aplikasi dan profil programmer. Tampilan
halaman tentang dapat dilihat pada Gambar 4.6.
Gambar 4.6. Tampilan Halaman Tentang
4.2 Pengujian Sistem
4.2.1 Pengujian Proses Enkripsi Pengirim (Enkripsi1)
Sebelum melakukan proses enkripsi, Pengirim akan membangkitkan bilangan prima dengan memilih digit bilangan prima yang diinginkan dan mengeksekusi tombol Generate Prima pada tab pembangkit kunci.
Setelah bilangan prima didapatkan, Pengirim membangkitkan kunci enkripsi dan dekripsi dengan mengeksekusi tombol Generate Kunci dan menyimpan kunci yang didapatkan. Pembangkit kunci Pengirim dapat dilihat pada gambar 4.7.
Untuk memulai proses Enkripsi1, Sender akan membuka file kunci dengan mengeksekusi tombol Browse dan sistem akan menampilkan direktori penyimpanan file. Setelah Sender memilih file kunci dengan ekstensi *.kma, sistem akan
menampilkan kunci pada textbox.
Gambar 4.8. Kunci Enkripsi Pengirim
Kemudian Sender memilih file dokumen untuk dienkripsi dengan mengeksekusi tombol Browse dan sistem akan menampilkan window direktori penyimpanan file. Setelah Sender memilih file, konten file akan tampil pada textbox. Untuk melakukan proses enkripsi, Sender mengeksekusi tombol Enkripsi Teks dan sistem akan menampilkan hasil enkripsi Cipherteks1 dan waktu enkripsi.
Gambar 4.9. Hasil Eksekusi Enkripsi1
Setelah melakukan enkripsi, Sender menyimpan hasil enkripsi dengan mengeksekusi tombol Simpan C1. Untuk mengkompresi file cipherteks1, Sender memilih file enkripsi untuk dikompresi dengan mengeksekusi tombol Browse dan sistem akan menampilkan window direktori penyimpanan file. Selanjutnya, User mengeksekusi tombol Kompresi untuk menjalankan proses.
Gambar 4.10. Kompresi Cipherteks1
Window Save akan muncul ketika tombol dieksekusi dan Sender memilih
karakter hasil kompresi dan bilangan prima yang akan digunakan oleh Recipient untuk membangkitkan kunci enkripsi dan dekripsi miliknya.
Gambar 4.11. File Hasil Kompresi Even-Rodeh
Angka setelah tanda “/*/” pertama merupakan karakter yang ada pada file sebelum dilakukan kompresi. Karakter ini akan digunakan pada proses dekompresi untuk mengembalikan isi file terkompresi menjadi file asli kembali. Angka setelah tanda “/*/” kedua adalah bilangan prima. Bilangan prima akan digunakan oleh Recipient untuk membangkitkan kunci enkripsi dan dekripsi.
Sistem akan menampilkan waktu kompresi, Ratio of Compression, Compression Ratio, dan Redudancy.
Gambar 4.12. Informasi Enkripsi1
4.2.2 Pengujian Proses Enkripsi Penerima (Enkripsi2)
kunci dengan mengeksekusi tombol Simpan Kunci. Kunci Recipient disimpan dengan ekstensi *.kmb.
Gambar 4.13. Hasil Generate Kunci Pengirim
Pada Enkripsi2, proses yang dijalankan adalah melakukan dekompresi pesan dengan mengeksekusi tombol Browse dan sistem akan menampilkan window direktori penyimpanan file. Selanjutnya User memilih file untuk diproses dengan ekstensi *.erc1.
Gambar 4.14. Dekompresi Cipherteks1
Setelah tombol Dekompresi dieksekusi, file akan didekompresi dan konten file akan ditampilkan oleh sistem pada textbox beserta waktu dekompresi file. Kemudian, Recipient memilih file kunci dengan mengeksekusi tombol Browse dan sistem akan
menampilkan window direktori penyimpanan file. Setelah file kunci dengan ekstensi *.kmb dipilih, maka kunci enkripsi akan tampil pada textbox. Recipient mengeksekusi tombol Enkripsi Teks dan sistem akan menampilkan hasil Enkripsi2 yaitu Cipherteks2 dan waktu enkripsi.
Kemudian, Recipient menyimpan hasil enkripsi dengan mengeksekusi tombol Simpan C2. Untuk mengkompresi file C2, Recipient memilih file enkripsi untuk dikompresi dengan mengeksekusi tombol Browse pada grupBox Kompresi dan sistem akan menampilkan window direktori penyimpanan file. Recipient memilih file cipherteks2 dan mengeksekusi tombol Kompresi.
Gambar 4.16. Kompresi Cipherteks2
Pop-Up Window Save akan muncul ketika tombol dieksekusi dan Recipient
memilih direktori untuk menyimpan file hasil kompresi Cipherteks2. File akan disimpan dengan ekstensi *.erc2. Sistem akan menampilkan waktu kompresi, Rc, Cr, dan Rd.
Gambar 4.17. Informasi Enkripsi2
4.2.3 Pengujian Proses Dekripsi Pengirim (Dekripsi1)
Alur proses dekripsi1 sama dengan Enkripsi 2, dimana proses dimulai dengan melakukan dekompresi teks. Sender memilih file untuk didekompresi dengan ekstensi *.erc2 dan mengeksekusi tombol Dekompresi.
Gambar 4.18. Dekompresi Cipherteks2
Sistem akan menampilkan hasil dekompresi file dan waktu proses dekompresi. Selanjutnya, Sender memilih file kunci berekstensi *.kma dengan mengeksekusi tombol Browse dan kemudian mengeksekusi tombol Dekripsi Teks untuk mendekripsi teks.
Gambar 4.19. Hasil Eksekusi Dekripsi1
Setelah melakukan enkripsi, Sender menyimpan hasil enkripsi dengan mengeksekusi tombol Simpan C3. Untuk mengkompresi file cipherteks3, Sender memilih file untuk dikompresi dengan mengeksekusi tombol Browse pada grupBox Kompresi dan mengeksekusi tombol Kompresi.
Gambar 4.20. Kompresi Cipherteks3
Pop-up Window Save akan muncul ketika tombol Kompresi dieksekusi dan
Sender memilih direktori untuk menyimpan file hasil kompresi Cipherteks3. File akan
disimpan dengan ekstensi *.erc3. Sistem akan menampilkan waktu kompresi, Ratio of Compression, Compression Ratio, dan Redudancy.
Gambar 4.21. Informasi Dekripsi1
4.2.4 Pengujian Proses Dekripsi Penerima (Dekripsi2)
Dekripsi2 dimulai dengan melakukan dekompresi terhadap file kompresi Cipherteks3 (*.erc3) dengan mengeksekusi tombol Browse dan memilih file yang akan diproses.
Tombol dekompresi dieksekusi untuk memulai proses dan sistem akan menampilkan hasil dekompresi file beserta waktu dekompresi. File kunci dipilih dengan mengeksekusi tombol Browse dan memilih file kunci penerima dengan ekstensi *.kmb. Kemudian, Recipient mengeksekusi tombol Dekripsi teks untuk mendekripsi teks yang sudah didekompresi. Karena Dekripsi2 merupakan tahap terakhir dari enkripsi-dekripsi pesan algoritma Massey-Omura, maka hasil yang didapatkan setelah proses Dekripsi2 merupakan pesan asli. Sistem akan menampilkan waktu dekompresi dan waktu dekripsi.
Gambar 4.23. Hasil Eksekusi Dekripsi2
4.3 Hasil Pengujian Sistem
Pengujian dilakukan untuk mengetahui hasil dari proses yang dilakukan oleh sistem berupa waktu proses, Ratio of Compression, Compression Ratio, dan Redudancy.
4.3.1 Pengujian algoritma Massey-Omura
13309 11621 743 5309 6251 82,18 4,95 66,5 76,03
Pengujian algoritma Massey-Omura dilakukan dengan menggunakan tiga file dengan bilangan prima dan pasangan kunci yang berbeda. Berdasarkan Tabel 4.1 pengujian proses menunjukkan bahwa waktu proses enkripsi dan dekripsi algoritma dipengaruhi oleh ukuran file dan besar kunci yang digunakan. Semakin besar ukuran file, maka waktu proses menjadi semakin lama. Hal ini dapat dilihat pada proses enkripsi 1 file berukuran 114 KB, 292 KB, dan 440 KB dengan kunci enkripsi 193 memerlukan waktu proses yang berbeda yaitu 2,68s, 6,54s, dan 10,27s. Hal lain yang mempengeruhi waktu proses ialah kunci enkripsi, dimana semakin besar kunci yang digunakan waktu proses menjadi semakin lama. Pengaruh dari penggunaan kunci dapat dilihat pada percobaan file berukuran 440 KB dengan kunci enkripsi 193, 353, dan 11621 yang memerlukan waktu proses 10,274s, 13,42s, dan 316,69s.
Tabel 4.2. Ukuran File Output Algoritma Massey-Omura File (KB) Bil.
Selain ukuran file dan besar kunci yang digunakan, bilangan prima juga mempengaruhi percobaan proses enkripsi-dekripsi dalam hal ukuran output proses. Sebagaimana terlihat pada Tabel 4.2 semakin besar digit bilangan prima yang digunakan, maka ukuran file output menjadi semakin besar. Salah satu contoh yaitu file berukuran 292 KB dengan menggunakan bilangan prima 241 dan 13309
4.3.2 Pengujian algoritma Even-Rodeh
Tabel 4.3. Hasil Pengujian Proses Kompresi Cipherteks1
No
Pengujian algoritma Even-Rodeh dilakukan dengan menggunakan file cipherteks yang dihasilkan dari proses enkripsi dan dekripsi Massey-Omura. Tabel 4.3 merupakan hasil dari pengujian kompresi file Cipherteks1 yang didapatkan dari proses Enkripsi1. Hasil pengujian menunjukkan bahwa semakin besar ukuran file, waktu proses menjadi semakin lama. Dapat dilihat pada Tabel 4.3 bahwa proses dekompresi teks memerlukan waktu lebih lama dibandingkan dengan proses kompresi dengan rata-rata waktu kompresi 5,622s dan waktu dekompresi 12,19s.
Tabel 4.4. Hasil Pengujian Proses Kompresi Cipherteks2
No
memakan waktu lebih lama dibandingkan dengan proses kompresi dengan rata-rata waktu kompresi 5,372s dan waktu dekompresi 11,794s.
Tabel 4.5. Hasil Pengujian Proses Kompresi Cipherteks3 No
Tabel 4.5 merupakan hasil dari pengujian kompresi file Cipherteks3 yang didapatkan dari proses Dekripsi1. Sebagaimana terlihat pada tabel, proses dekompresi teks memakan waktu lebih lama dibandingkan dengan proses kompresi dengan rata-rata waktu kompresi 5,538s dan waktu dekompresi 11,986s.
4.4 Kompleksitas Algoritma
4.4.1 Kompleksitas algoritma Massey-Omura
Pengujian kompleksitas algoritma dilakukan untuk mengetahui tingkat nilai masukan n suatu algoritma. Kompleksitas algoritma dihitung berdasarkan kode program sistem. Kompleksitas algoritma Massey-Omura ditunjukkan pada Tabel 4.8.
Tabel 4.6. Kompleksitas Algoritma Massey-Omura
Kode Program � # �� #
1 public static BigInteger gcd(BigInteger
11 if ((gcd(key_e, prima - 1)) == 1) �4 1 �4
12 return key_e �3 1 �3
13 else
14 return kunci_e (prima); �3 1 �3 15 }
16 public static int kunci_dA(int prima, BigInteger
e){
32 public static string enkripsi(string Plain, int pr
ima, int e){
System.Convert.ToInt32(c).ToString()+" "; �6 � �6�
39 }
�(�) = �1+�2�+�3�+�3+�1 +�1 +�4+�3+�3+�1+�4+�1+�2�+
Kolom C pada tabel kode program merupakan variabel statement yang akan diproses dan kolom # merupakan frekuensi komputasi statement. Kolom �� # merupakan hasil perkalian dari C dan #. Berdasarkan tabel 4.8 kompleksitas algoritma Massey-Omura adalah Big-� = �(�).
4.4.2 Kompleksitas algoritma Even-Rodeh
Kompleksitas algoritma Even-Rodeh dapat dilihat pada Tabel 4.9. Tabel 4.7. Kompleksitas Algoritma Even-Rodeh
Kode Program � # �� #
1 public static string encode (string kalimat){
28 for (int i=7; i<sbitkom.Length+7; i+=7){ �7 � �7�
29 int dec =
Convert.ToInt32(sbitkom.Substring(awal,7), 2); �1 � �1�
30 char chr = (char)dec; �1 � �1�
40 public static string decode(string charkompresi){
41 StringBuilder binn = new StringBuilder(); �1 1 �1 42
string karakter = strkom.Split(new [] {"/*/"}, StringSplitOptions.N
one)[0]; �1
Convert.ToInt32(bin.Substring(bin.Length-7),2); �1 1 �1
77 if (n<4){ �6 1 �6 78 string s = Convert.ToString(n,2); �1 1 �1 79 for (int i = 0; i<3-s.Length; i++){ �7 � �7�
80 kode.Append("0"); �4 � �4�
81 }
82 kode.Append(s); �4 1 �4
83 }
84 else {
85 kode.Append("0"); �4 1 �4
86 while (n>=4){ �3 � �3�
87 string st = Convert.ToString(n,2); �1 � �1�
88 kode.Insert(0,st); �4 � �4�
89 n = st.Length; �1 � �1�
90 }
91 }
92 return kode.ToString(); �8 1 �8
93 }
�(�) = �1+�1+�1+�1+�1 +�1+�1+�2�+�1�+�1 +�3�+�4�+�5�+
�6 + �1+�3�+�1�+�4+�4+�1+�1+�1+�7�+�1�+�1�+�1�+
�1�+ �8+�1+�2�+�1�+�6�+�7n2+�4n2+�4�+�4�+�1 +�1 +
�6 + �1+�1+�7�+�4�+�7�+�2�+�4�+�6�+�5�+�1�+�8+
�1+�6+ �1+ �1+ �1�+ �2+�7�+�4�+�4+�4+�3�+�1�+
�4�+�1�+�8
= (20 + 4�4+ 3�6+ 3�8)�0+ (11�
1+ 4�2+ 3�3 + 7�4+ 2�5+ 2�6+
4�7n1+(�4+�7)n2
= �(�2)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan analisis, perancangan, dan pengujian dari implementasi algoritma kriptografi Massey-Omura dalam pengamanan file dan Even-Rodeh untuk kompresi file enkripsi, maka di peroleh beberapa kesimpulan sebagai berikut:
1. Pengamanan file melalui proses enkripsi-dekripsi dengan algoritma Massey-Omura dan proses kompresi file enkripsi dengan algoritma Even-Rodeh dapat
berjalan dengan baik.
2. Hasil pengujian menunjukkan bahwa ukuran dokumen dan kunci enkripsi atau dekripsi berbanding lurus dengan waktu proses. Semakin besar ukuran dokumen atau kunci yang digunakan, waktu proses enkripsi dan dekripsi menjadi semakin lama.
3. Digit bilangan prima yang digunakan berbanding lurus dengan ukuran file output (cipherteks). Semakin besar digit bilangan prima, ukuran file yang
dihasilkan menjadi semakin besar.
4. Ukuran file cipherteks berbanding lurus dengan waktu proses kompresi. Semakin besar ukuran file, maka waktu proses menjadi semakin lama.
5. Hasil pengujian mengunjukkan bahwa waktu proses kompresi lebih cepat dibandingkan waktu proses dekompresi.
5.2 Saran
1 Untuk pengembangannya, sistem dapat ditambahkan fungsi untuk mengolah file dengan jenis lain seperti gambar, audio, dan video. Atau memproses file
dokumen dengan format selain file berekstensi *.docx.
2 Penelitian selanjutnya diharapkan dapat mempersingkat waktu proses enkripsi dan dekripsi.
3 Jumlah digit bilangan prima yang digunakan sesuai dengan standar keamanan enkripsi kriptografi.
BAB 2
TINJAUAN PUSTAKA
8.1.Kriptografi
Kriptografi memiliki arti sebagai suatu bidang ilmu yang mempelajari metode-metode pengiriman pesan dalam bentuk rahasia sehingga hanya pihak yang dituju saja yang dapat menghilangkan penyamaran dari pesan dan membaca pesan asli. Pesan asli disebut plainteks, dan pesan tersamarkan disebut cipherteks. Proses untuk mengubah plainteks menjadi cipherteks disebut enkripsi. Dan sebaliknya yaitu proses mengembalikan cipherteks menjadi plainteks yang dapat dilakukan oleh penerima yang memiliki kunci untuk menghilangkan samaran pesan disebut dekripsi.
Hingga akhir abad ke 20 kriptografi secara umum dianggap sebagai seni. Hal ini disebabkan karena kriptografi pada masa tersebut digunakan untuk mengkonstruksi kode yang baik, atau memecahkan kode yang sudah ada menggunakan kreativitas dan pengertian mengenai bagaimana kode bekerja. Pengguna terbesar kriptografi pada masa ini adalah pemerintah dan organisasi militer. Pada awal tahun 1970 dan 1980an, pandangan bahwa kriptografi merupakan seni berubah secara drastis. Perubahan disebabkan dengan munculnya teori-teori kompleks yang mengawali kajian mendalam terhadap kriptografi sebagai sebuah disiplin ilmu.
atau transaksi seperti mengamankan transaksi kartu kredit melalui internet, verifikasi pembaharuan sistem operasi, dan proses otentikasi dengan menggunakan password. Kriptografi telah berevolusi dari sebuah kumpulan perangkat yang ditugaskan untuk mengamankan komunikasi rahasia untuk keperluan militer menjadi sebuah ilmu yang dapat digunakan untuk mengamankan sistem untuk orang biasa diseluruh dunia seperti (Katz & Lindell 2015).
2.1.1 Jenis kriptografi berdasarkan kunci enkripsi
Berdasarkan kunci yang digunakan terdapat dua jenis kriptografi, yaitu: 1. Kriptografi simetris atau private key cryptosystem
Pada skema kriptografi private key, kedua pihak yang melakukan komunikasi memilih sebuah kunci (�) yang akan digunakan untuk mengamankan pesan. Pihak pertama dapat mengirimkan sebuah pesan atau plainteks yang telah diamankan menggunakan sebuah kunci yang telah dipilih untuk mengenkripsi atau “mengacak” pesan. Pihak kedua yang telah menerima cipherteks akan mendekripsi atau “menguraikan” pesan dengan menggunakan kunci yang sama. Simetris dari skema ini terletak pada penggunaan kunci yang sama untuk proses enkripsi dan dekripsi pesan. Beberapa contoh sistem kriptografi simetris antara lain DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, dan yang
terbaru AES (Advanced Encryption Standard). Skema kriptografi simetris dapat dilihat pada Gambar 2.2.
Gambar 2.1 Skema Kriptografi Simetris (Katz & Lindell 2015)
2. Kriptografi asimetris atau kriptografi kunci publik
pesan. Untuk mendekripsi cipherteks yang dikirimkan oleh pihak pengirim, pihak penerima menggunakan private key (sk) (Katz & Lindell 2015).
2.1.2 Kelebihan dan kelemahan kriptografi kunci publik
Kelebihan kriptografi kunci publik (Katz & Lindell 2015):
1. Pihak yang berkomunikasi tidak perlu berbagi kunci secara rahasia sebelum melakukan komunikasi. Kedua pihak dapat bermokunikasi secara aman meskipun jalur komunikasi antara kedua pihak selalu diawasi.
2. Kriptografi kunci publik lebih sesuai pada lingkungan dimana pihak yang belum pernah berinteraksi sebelumnya menginginkan kemampuan untuk berkomunikasi secara aman.
3. Enkripsi kunci publik memperkenankan distribusi kunci dilakukan pada saluran publik. Hal ini dapat menyederhanakan distribusi dan pembaharuan material kunci.
4. Kriptografi kunci publik mengurangi kebutuhan user untuk menyimpan banyak secret key.
Kelemahan kriptografi kunci publik:
a. Pada beberapa penerapan, kriptosistem kunci publik secara umum lebih lambat dibandingkan kriptosistem simetris sehingga kurang sesuai untuk enkripsi dalam ukuran besar (Blahut, 2014).
2. Dalam prakteknya, cipher asimetris dianggap lebih lambat dibandingkan dengan cipher simetris seperti DES dan AES (Hoffstein, et al. 2014).
8.2.Three-Pass Protocol
Pada kriptografi, Three Pass-Protocol merupakan sebuah protokol atau kerangka kerja untuk mengirim pesan secara aman tanpa harus memerlukan pertukaran kunci. Three-Pass Protocol pertama kali dikembangkan oleh Adi Shamir sekitar tahun 1980 dan
dikatakan Three-Pass-Protocol karena pengirim dan penerima melakukan pertukaran pesan sebanyak tiga kali.
Three-Pass Protocol dapat digambarkan sebagai sebuah kotak yang dikirimkan
gembok. Berikut merupakan cara kerja Three-Pass Protocol (Kanomori & Yoo, 2009):
1. Alice memasukkan pesan yang ingin dikirimkan kepada Bob ke dalam kotak dan mengunci kotak dengan gembok miliknya. Kotak kemudian dikirimkan ke Bob. 2. Bob menerima kotak yang dikirimkan dari Alice dan mengunci kotak dengan
gembok miliknya dan mengirimkan kotak kembali ke Alice. Pada tahap ini kotak memiliki dua buah gembok.
3. Alice membuka gembok miliknya dari kotak dan mengirimkan kotak kembali ke Bob.
4. Bob membuka gembok miliknya dari kotak dan mendapatkan pesan yang dikirimkan oleh Alice.
8.3.Algoritma Massey-Omura
Massey-Omura Cryptosystem adalah cipher berbasis eksponensial yang diusulkan oleh
James Massey dan Jim K. Omura pada 1982 yang didasarkan pada Shamir’s three-pass protocol atau Shamir’s no-keys protocol. Keuntungan dari kriptosistem ini adalah
tidak diperlukan distribusi atau pertukaran kunci diantara kedua pihak yang berkomunikasi (Blahut, 2014).
Sebelum melakukan komunikasi dengan menggunakan Massey-Omura Cryptosystem, para koresponden harus memiliki kunci enkripsi dan dekripsi terlebih
dahulu dengan syarat (Hyka & Benusi 2014):
1. Kedua pihak menyetujui sebuah bilangan prima (p) yang sudah tetap dan diketahui secara publik sebagai modulus dengan syarat p > L. Di mana L adalah integer terbesar yang merepresentasikan sebuah karakter pesan.
2. Masing-masing pengguna sistem secara rahasia memilih sebuah bilangan bulat acak �� atau �� antara 1 dan p−1 sebagai calon kunci enkripsi dengan syarat gcd(��,� −1) = 1 dan gcd(��,� −1) = 1
Tahap-tahap pengiriman pesan dengan Massey-Omura Cryprosystem, dengan anggapan bahwa Bob ingin mengirim sebuah pesan M ke Alice adalah (Hyka & Benusi 2014):
1. Sebelum mengirimkan pesan M kepada Bob, Alice harus mengkonversi pesan alfanumerik menjadi pesan numerik M. Kemudian, Alice menghitung �1 =
��� (����) dan mengirim hasil komputasi kepada Bob.
2. Tanpa perlu mengerti isi dari pesan, Bob mengenkripsi pesan dengan kunci �� miliknya dan mengirimkan hasil perhitungan �2 =�1��(����) =
����� (����) yang didapat kembali ke Alice.
3. Alice mendekripsi pesan secara parsial dengan kunci �� dan menghitung �3 =
�2��(����) = ������� (����) =��� (����) dan mengirim hasil
komputasi ke Bob.
4. Bob kemudian menyelesaikan proses dekripsi dengan kunci �� dan mengkomputasi �4 = �3��(����) = ����� (����) =�.
8.4.Aspek Matematika pada Massey-Omura Cryptosystem 2.4.1 Aritmatika modular
Aritmatika modular digunakan dalam kriptografi dengan menggunakan mod atau modulo sebagai operator. Mod adalah operator yang digunakan untuk memberikan hasil sisa bagi antara dua bilangan. Misalkan �,� ∈ ℤ dengan �> 0. Perhitungan m���� akan menghasilkan sisa bagi r, atau dalam model matematika dapat ditulis:
�����= � (1) sedemikian hingga:
� =� . �+�, di mana �= �÷� dan 0≤ �<� (2) Contoh: 27 ��� 4 = 1, maka 27 = 4 . 6 + 1
Apabila m bernilai negatif, maka sisa bagi yang didapat dari |−�| dibagi dengan �adalah r’ dan untuk mendapatkan r dicari � − �′ sedemikian hingga: