• Tidak ada hasil yang ditemukan

Implementasi Dan Analisis Algoritma Massey-Omura Dan Algoritma Even-Rodeh Dalam Pengamanan Dan Kompresi File Dokumen

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Dan Analisis Algoritma Massey-Omura Dan Algoritma Even-Rodeh Dalam Pengamanan Dan Kompresi File Dokumen"

Copied!
102
0
0

Teks penuh

(1)
(2)

hasil = (key_dA*eA) % (prima-1);

== 0 && key_dB!=eA && key_dB!=dA && key_dB!=eB)

(3)
(4)
(5)
(6)

}

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 =

(7)

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(); }

(8)

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

(9)

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.

(10)

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.

(11)

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.

(12)

Gambar 3.1 Diagram Ishikawa Analisis Masalah

(13)

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.

(14)

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

(15)

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.

(16)

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.

(17)

Gambar 3.5. Activity Diagram Pembangkit Bilangan Prima

Activity Diagram untuk Pembangkit Kunci A dapat dilihat pada Gambar 3.6.

(18)

Activity Diagram untuk Pembangkit Kunci B dapat dilihat pada Gambar 3.7.

(19)

Activity Diagram untuk Enkripsi1 dapat dilihat pada Gambar 3.8.

(20)

Activity Diagram untuk Enkripsi2 dapat dilihat pada Gambar 3.9.

(21)

Activity Diagram untuk Dekripsi1 dapat dilihat pada Gambar 3.10.

(22)

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.

(23)

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

(24)

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

(25)

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

(26)

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)

(27)

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)

(28)

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

(29)

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

(30)

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.

(31)

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.

(32)

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.

(33)

sehingga didapatkan integer dari plainteks. Kemudian Integer plainteks dikonversi menjadi karakter kembali.

Gambar 3.17. Flowchart Dekripsi1 dan Dekripsi2

5) Flowchart Even-Rodeh Code

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

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.

(40)

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.

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

terdapat pada kode tabel dan mewakili karakter Spasi. Proses ini akan terus dilakukan hingga indeks ke-n, sehingga diperoleh string asli yaitu “FAKULTAS

(51)

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

(52)

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.

(53)

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

(54)

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.

(55)

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.

(56)

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

(57)

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)

(58)

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.

(59)

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.

(60)

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.

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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 }

(66)

�(�) = �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){

(67)

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

(68)

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)

(69)

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.

(70)

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.

(71)

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.

(72)

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

(73)

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

(74)

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

(75)

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:

Gambar

Gambar 3.13. Activity Diagram Dekompresi
Gambar 3.18. Flowchart Even-Rodeh Code
Gambar 3.19. Perancangan Form Beranda
Gambar 3.20. Perancangan Form Pembangkit Kunci
+7

Referensi

Dokumen terkait

Halaman simulasi sistem merupakan halaman yang diguakan untuk melakukan proses enkripsi pesan, dekripsi pesan, kompresi pesan dan dekompresi pesan menggunakan

Sistem harus mampu mengenkripsi setiap karakter yang ada pada string yang telah di baca sebelumnya dari file yang telah di input, sehingga menghasilkan hasil enkripsi dari

Agar komunikasi tetap aman, maka keberadaan kunci harus tetap dirahasiakan dari pihak yang tidak berkepentingan dengan cara pengirim harus memastikan bahwa jalur

Algoritma LUC merupakan kriptografi asimetri sehingga menggunakan dua kunci yang berbeda, yaitu kunci publik untuk enkripsi dan kunci privat digunakan untuk

Pertukaran informasi data atau pengiriman data melibatkan dua entitas, dimana adanya sender (pengirim) dan recipient (penerima). Entitas disini tidak hanya orang

Algoritma asimetris atau biasa disebut algoritma kunci publik dirancang sedemikian sehingga kunci yang digunakan untuk mengenkripsi dan mendekripsi berbeda.Kunci dekripsi tidak

Pesan awal dalam sistem kriptografi disebut juga sebagai plaintext (disimbolkan dengan p), yaitu pesan asli yang akan disampaikan pengirim kepada penerima pesan.. Sedangkan

Berikut merupakan tampilan proses pengujian dekripsi file RTF 1 yang disimpan dengan nama “Enkrip RTF 1.hlvd”. Pertama sekali cari file tersebut dan juga load kunci