• Tidak ada hasil yang ditemukan

Kombinasi Algoritma Elgamal Dan Algoritma Kompresi Shannon-Fano

N/A
N/A
Protected

Academic year: 2016

Membagikan "Kombinasi Algoritma Elgamal Dan Algoritma Kompresi Shannon-Fano"

Copied!
96
0
0

Teks penuh

(1)

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA

KOMPRESI SHANNON-FANO

TESIS

AULIANA NASUTION

107038013

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA

KOMPRESI SHANNON-FANO

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

AULIANA NASUTION

107038013

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(3)

PENGESAHAN

Judul : KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI SHANNON-FANO

Kategori : TESIS

Nama : AULIANA NASUTION Nomor Induk Mahasiswa : 107038013

Program Studi : S2 TEKNIK INFORMATIKA

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Prof. Dr. Saib Suwilo., M. Sc Dr. Poltak Sihombing, M. Kom

Diketahui/disetujui oleh

Program Studi S2 Teknik Informatika Ketua,

(4)

PERNYATAAN ORISINALITAS

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA

KOMPRESI SHANNON-FANO

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 15 Nopember 2013

(5)

PERNYATAAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini :

Nama : Auliana Nasution NIM : 107038013

Program studi : S2 Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Ekslusif (Non-Exclusive Royalty Free Right) atas tesis saya yang berjudul :

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI SHANNON-FANO

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Ekslusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengolah dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mecantumkan nama saya sebagai penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 15 Nopember 2013

(6)

Telah diuji pada

Tanggal : 15 Nopember 2013

PANITIA PENGUJI TESIS :

Ketua : Dr. Poltak Sihombing, M.Kom Anggota : 1. Prof. Dr. Saib Suwilo., M. Sc

(7)

RIWAYAT HIDUP

DATA PRIBADI

Nama lengkap berikut gelar : Auliana Nasution., S.Kom Tempat dan Tanggal Lahir : Medan, 9 Juni 1978

Alamat Rumah : Jl. Stasiun Gg. Cemara No. 3 Dsn IV Psr VI Marindal I Medan-20361

Telepon/Faks/HP : 081361272410

e-mail : liana96782@gmail.com

Instansi Tempat Bekerja : UMN Al Washliyah Medan Alamat Kantor : Jl. Garu II No. 93 dan No. 2 Telepon : 061-7867044

DATA PENDIDIKAN

(8)

UCAPAN TERIMA KASIH

Syukur Alhamdulillah Penulis panjatkan kehadirat Allah SWT yang telah melimpahkan Rahmat dan Karunia-Nya, sehingga tesis ini dapat diselesaikan dengan baik. Tesis ini bertujuan untuk memenuhi sebagian persyaratan mendapat gelar Magister Komputer pada Program Studi S2 Teknik Informatika Universitas Sumatera Utara.

Penulisan tesis ini dapat diselesaikan berkat bantuan dan dorongan berbagai pihak baik moril maupun materil, yang tidak dapat penulis sebutkan satu persatu. Semoga bantuan dan dorongan yang telah diberikan menjadi amal ibadah dan mendapatkan rahmat dari Allah SWT, Amin.

Rasa terima kasih terutama penulis sampaikan kepada :

1. Rektor Universitas Sumatera Utara, Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc (CTM), Sp. A(K)

2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara sekaligus Ketua Program Studi S2 Teknik Informatika Bapak Prof. Dr. Muhammad Zarlis dan seluruh staf yang telah memberikan fasilitas belajar dan pelayanan yang baik selama penulis mengikuti perkuliahan di Program Studi S2 Teknik Informatika

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Pembimbing I dan Bapak Prof. Dr. Saib Suwilo, M.Sc selaku Pembimbing II yang telah banyak meluangkan waktu dalam memberikan ide dan arahan hingga terselesaikannya tesis ini.

4. Bapak M. Andri Budiman, ST, M.Comp.Sc, M.E.M selaku Sekretaris Program Studi S2 Teknik Informatika yang telah banyak memberikan motivasi dan pemikiran-pemikiran dalam penyelesaian tesis ini.

5. Bapak Prof. Dr. Herman Mawengkang. Dr. Zakarias Situmorang dan Prof. Dr. Muhammad Zarlis, sebagai pembanding yang telah memberikan saran dan masukan demi penyelesaian tesis ini

(9)

7. Ayahanda Alm. M. D. Najamuddin dan Ibunda Jamilah serta seluruh keluarga besar yang tidak dapat saya sebutkan satu persatu, terimakasih atas segala bantuan dan pengorbanannya.

8. Rekan mahasiswa/I angkatan kedua tahun 2010 yang telah banyak membantu penulis dalam memberikan dorongan semangat dan doa, baik selama mengikuti perkuliahan maupun selama penyelesaian tesis ini.

Akhirnya, penulis berdoa kepada Allah SWT semoga kita semua mendapatkan karunia dan ridha-Nya, dan semoga tesis ini dapat bermanfaat baik bagi penulis maupun pembaca sekalian.Amin.

Medan, 15 Nopember 2013 Penulis,

(10)

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA

KOMPRESI SHANNON-FANO

ABSTRAK

Sistem kriptografi kunci asimetrik popular selain Rivest Shamir Adleman (RSA) adalah system kriptografi ElGamal. Sistem kriptografi ini terdiri dari tiga tahap yaitu pembentukan kunci, enkripsi dan dekripsi, dimana untuk membentuk system kriptografi ElGamal dibutuhkan bilangan prima p dan akar primitif  (primitive root) yang merupakan faktor terpenting dalam pembentukan kunci. Penentuan akar primitif  (primitive root) itu dirasa sulit karena menggunakan bilangan prima p yang cukup besar dan harus melakukan dua kali perhitungan ordo modulo perpangkatan yang berbeda. Tidak hanya penentuan elemen primitive α (primitive root), pesan cipher yang dihasilkan dari proses enkripsinya juga berukuran dua kali lebih besar dari pesan plainteksnya.

Dalam penelitian ini penulis mencoba menentukan nilai  (primitive root) secara algoritmik, yaitu dengan menyederhanakan langkah-langkah penyelesaian dan menyusunnya secara sistematis. Sedangkan untuk memperkecil pesan cipher dilakukan proses kompresi menggunakan algoritma Shannon-Fano. Penulis melakukan uji coba terhadap seluruh huruf, angka dan tanda baca yang ada di keyboard, kemudian melakukan 8 (delapan) uji coba dengan pola yang berbeda sedangkan ukuran plainteksnya sama. Uji coba terakhir dilakukan terhadap sebuah file surat. Hasil Uji coba menunjukkan bahwa seluruh huruf, angka dan tanda baca yang ada di keyboard dapat dienkripsi dan dikompresi; pembentukan pola mempengaruhi ukuran pesan terenkripsi dan ukuran kompresi; plainteks dengan ukuran yang sama menghasilkan pesan terenkripsi yang berbeda jika dilakukan pengulangan proses enkripsi dan pesan yang telah dikompresi kemudian dikompresi ulang akan menghasilkan ukuran kompresi yang lebih besar akan tetapi pesan tidak dapat di kembalikan ke bentuk semula dan File surat yang ukurannya cukup besar dapat dikompresi sehingga ukurannya lebih kecil dari ukuran awalnya.

Algoritma kompresi Shanno-Fano dapat memampatkan pesan chipertext dari algoritma ElGamal sehingga ukuran pesan cipher dapat disimpan dalam ruang penyimpanan terbatas.

(11)

COMBINATION OF ELGAMAL ALGORITHM AND

COMPRESSION SHANNON-FANO

ABSTRACK

Asymmetric key cryptography system popular than Rivest Shamir Adleman (RSA) is a cryptographic system ElGamal. The system cryptographic has there face, they are key performed encryption and decryption in which to perform the system of cryptographic ElGamal is needed prima p in the primitive root as the most importance

factor in performing key. The setting of primitive root (α) is difficult became of using prima p that is big enough and it should be done twice the ordor modulo with

calculation. Not only statement of primitive root (α), the cipher message product from the process of its encryption should be bigger twice than the plaintext.

In this research, the use archer tried to stated primitive root (α) through algorithmic, to simplify the steps of finishing and arranging systematically. To simplify the messages of cipher, through process of compression use algorithm Shannon-Fanon, the use archer did the test toward all of the alphabetical, number and quotation available on keyboard, and then did 8 tests with different pattern. While the measurement was the same. The last test was alone toward letter file. The result of the test shows that all of the alphabet number and quotation can be encryption and compression; plaintext with the same measurement produced the encryption if the reprocess of encryption done and the message that has been compressed then recompressed.

Will has bigger compression but the message can’t be returned to the first form and the large file of letter can be compressed into smaller from the basic. Algorithm compression Shannon-Fanon can compress cipher text from algorithm ElGamal so the measurement of cipher can be saved in limitation space.

(12)

DAFTAR ISI

2.2 Algoritma Kriptografi ElGamal 7 2.2.1 Sejarah Algoritma Kriptografi ElGamal 7 2.2.2 Landasan Matematika Algoritma Kriptografi ElGamal 7 2.2.3 Prinsip Kerja Algoritma Kritografi ElGamal 11 2.2.3.1 Proses Pembentukan Kunci 11 2.2.3.2 Proses Enkripsi 12 2.2.3.3 Proses Dekripsi 13

2.3 Kompresi 13

(13)

2.4 Riset Terkait 15 2.5 Persamaan dan Perbedaan dengan Riset lain 17 2.6 Kontribusi Penelitian 17 BAB 3 METODOLOGI PENELITIAN 18 3.1 Pengumpulan dan Sumber Data 18

3.2 Pengolahan Data 18

3.2.1 Pembangkit Bilangan Acak 18 3.2.2 Penentuan Akar Primitif pada Algoritma ElGamal 18 3.2.3 Proses Enkripsi-Kompresi 19 3.2.4 Proses Dekompresi-Dekripsi 21

3.3 Proses Analisis 21

3.3.1 Analisis Akar Primitif pada Algoritma ElGamal 21 3.3.1.1 Penentuan Akar Primitive menggunakan Ordo

Modulo Perpangkatan 22 3.3.1.2 Penentuan Akar Primitive secara Algoritmik 23 3.3.2 Analisis Proses Enkripsi-Kompresi 24 3.3.3 Instrumen Penelitian 30 BAB 4 HASIL PENELITIAN DAN PEMBAHASAN 31

4.1 Pendahuluan 31

4.2 Hasil Uji Coba 31

4.2.1 Penentuan Akar Primitif 31 4.2.2 Hasil Simulasi Kombinasi Proses Enkripsi-Kompresi dan

Proses Dekompresi-Dekripsi 33

4.3 Pembahasan 66

4.3.1 Penentuan Akar Primitif 66 4.3.2 Analisis Hasil Simulasi Kombinasi Proses Enkripsi-Kompresi

dan Proses Dekompresi-Dekripsi 70 BAB 5 KESIMPULAN DAN SARAN 73

5.1 Kesimpulan 73

5.2 Saran 74

(14)

DAFTAR TABEL

TABEL 2.1 Riset Tekait 15

TABEL 3.1 Perhitungan Ordo 3 Modulo 5 22 TABEL 3.2 Peritungan Akar Primitiv 23 TABEL 3.3 Perhitungan Ordo 6 Modulo 59 23 TABEL 3.4 Konversi Blok Karakter ke dalam Kode ASCII 25 TABEL 4.5 Enkripsi Pean Teks 25 TABEL 3.6 Frekuensi dan Pengurutan Karakter secara Ascending String Hasil

Shorting 26

TABEL 3.7 Pembagian Karakter menjadi Dua Kelompok Besar 27 TABEL 3.8 Pemberian Kode pada Fase 1 27 TABEL 3.9 Pemberian Kode pada Fase 2 28 TABEL 3.10 Pemberian Kode pada Fase 3 28 TABEL 3.11 Pemberian Kode pada Fase 4 29 TABEL 3.12 Pemberian Kode pada Fase 5 29 TABEL 3.13 Hasil Kompresi 30 TABEL 4.1 Perhitungan Ordo 3 Modulo 5 66 TABEL 4.2 Perhitungan Ordo 5 Modulo 47 67 TABEL 4.3 Perhitungan Ordo 5 Modulo 107 68 TABEL 4.4 Hasil Uji Coba untuk 12 (dua belas) percobaan 70 TABEL 4.5 Hasil Kompresi Algoritma Shannon-Fano untuk 11 (sebelas) Uji

(15)

DAFTAR GAMBAR

(16)
(17)

KOMBINASI ALGORITMA ELGAMAL DAN ALGORITMA

KOMPRESI SHANNON-FANO

ABSTRAK

Sistem kriptografi kunci asimetrik popular selain Rivest Shamir Adleman (RSA) adalah system kriptografi ElGamal. Sistem kriptografi ini terdiri dari tiga tahap yaitu pembentukan kunci, enkripsi dan dekripsi, dimana untuk membentuk system kriptografi ElGamal dibutuhkan bilangan prima p dan akar primitif  (primitive root) yang merupakan faktor terpenting dalam pembentukan kunci. Penentuan akar primitif  (primitive root) itu dirasa sulit karena menggunakan bilangan prima p yang cukup besar dan harus melakukan dua kali perhitungan ordo modulo perpangkatan yang berbeda. Tidak hanya penentuan elemen primitive α (primitive root), pesan cipher yang dihasilkan dari proses enkripsinya juga berukuran dua kali lebih besar dari pesan plainteksnya.

Dalam penelitian ini penulis mencoba menentukan nilai  (primitive root) secara algoritmik, yaitu dengan menyederhanakan langkah-langkah penyelesaian dan menyusunnya secara sistematis. Sedangkan untuk memperkecil pesan cipher dilakukan proses kompresi menggunakan algoritma Shannon-Fano. Penulis melakukan uji coba terhadap seluruh huruf, angka dan tanda baca yang ada di keyboard, kemudian melakukan 8 (delapan) uji coba dengan pola yang berbeda sedangkan ukuran plainteksnya sama. Uji coba terakhir dilakukan terhadap sebuah file surat. Hasil Uji coba menunjukkan bahwa seluruh huruf, angka dan tanda baca yang ada di keyboard dapat dienkripsi dan dikompresi; pembentukan pola mempengaruhi ukuran pesan terenkripsi dan ukuran kompresi; plainteks dengan ukuran yang sama menghasilkan pesan terenkripsi yang berbeda jika dilakukan pengulangan proses enkripsi dan pesan yang telah dikompresi kemudian dikompresi ulang akan menghasilkan ukuran kompresi yang lebih besar akan tetapi pesan tidak dapat di kembalikan ke bentuk semula dan File surat yang ukurannya cukup besar dapat dikompresi sehingga ukurannya lebih kecil dari ukuran awalnya.

Algoritma kompresi Shanno-Fano dapat memampatkan pesan chipertext dari algoritma ElGamal sehingga ukuran pesan cipher dapat disimpan dalam ruang penyimpanan terbatas.

(18)

COMBINATION OF ELGAMAL ALGORITHM AND

COMPRESSION SHANNON-FANO

ABSTRACK

Asymmetric key cryptography system popular than Rivest Shamir Adleman (RSA) is a cryptographic system ElGamal. The system cryptographic has there face, they are key performed encryption and decryption in which to perform the system of cryptographic ElGamal is needed prima p in the primitive root as the most importance

factor in performing key. The setting of primitive root (α) is difficult became of using prima p that is big enough and it should be done twice the ordor modulo with

calculation. Not only statement of primitive root (α), the cipher message product from the process of its encryption should be bigger twice than the plaintext.

In this research, the use archer tried to stated primitive root (α) through algorithmic, to simplify the steps of finishing and arranging systematically. To simplify the messages of cipher, through process of compression use algorithm Shannon-Fanon, the use archer did the test toward all of the alphabetical, number and quotation available on keyboard, and then did 8 tests with different pattern. While the measurement was the same. The last test was alone toward letter file. The result of the test shows that all of the alphabet number and quotation can be encryption and compression; plaintext with the same measurement produced the encryption if the reprocess of encryption done and the message that has been compressed then recompressed.

Will has bigger compression but the message can’t be returned to the first form and the large file of letter can be compressed into smaller from the basic. Algorithm compression Shannon-Fanon can compress cipher text from algorithm ElGamal so the measurement of cipher can be saved in limitation space.

(19)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Algoritma ElGamal adalah algoritma yang system pengamanannya didasarkan pada masalah Logaritma Diskrit. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Untuk membentuk system kriptografi ElGamal dibutuhkan bilangan prima p dan elemen primitive grup Zp*.

Proses pembentukan kunci kriptografi ElGamal terdiri dari pembentukan kunci

privat (rahasia) dan pembentukan kunci public (umum). Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup Zp* dan elemen primitive (primitive root) sebagai dasar pembentuk kunci public (umum) sedangkan sembarang bilangan acak a{0, 1,…, p-2) digunakan sebagai pembentuk kunci privat

(rahasia).

Beberapa algoritma yang digunakan menentukan bilangan prima antara lain : tes keprimaan biasa, tes Fermat, tes Rabbin-Miller, tes Solovay-Strassen dan sebagainya.(Menezes, Oorschot and Vanstone, 1996) Sedangkan untuk menentukan

elemen primitive  (primitive root) digunakan perhitungan aritmatika modulo, algoritma gauss dan sebagainya. (Mollin, 2007)

Dalam penelitian sebelumnya, Haraty, et. al (2005) memodifikasi skema kunci publik enkripsi ElGamal dari domain bilangan bulat alami, Z, untuk dua domain utama yang ideal, yaitu domain dari bilangan bulat Gaussian, Z[i], dan domain dari

finite field, F[x].

(20)

Untuk mengurangi panjang pesan perlu dilakukan pemampatan yaitu dengan cara mengkodekan karakter berdasarkan frekuensi kemunculannya, sehingga ruang penyimpanan yang digunakan dapat lebih kecil.

Beberapa teknik pemampatan yang digunakan berdasarkan metode atau langkah kerjanya, dikelompokkan dalam empat bagian yaitu : a. algoritma kompresi dasar (Run-length encoding dan Differential encoding); b. statistical compression

(Huffman (static dan dynamic), Shannon-Fano (static dan dynamic) dan Arithmatic (static dan dynamic); c. dictionary based compression (LZ77, LZ78 dan LZW); d. kompresi dengan transformasi (DCT (Discrete Cosine Transform) dan Wavelet

(gelombang-singkat)). (Wiryadinata, 2007)

Sedangkan untuk membandingkan beberapa teknik kompresi dilakukan oleh Christina (2009) menganalisis perbandingan antara pengkodean LZ78 dan Shannon-Fano dalam kompresi data teks yang memiliki kemunculan karakter yang merata. Kodituwakku et. al (2010) menganalisis teknik lossless beberapa algoritma kompresi yang terdiri dari Run-length encoding, Huffman, Shannon-Fano, Arithmatic, dan LZW menggunakan jenis file dan pola uji yang berbeda. Penelitian-penelitian tersebut menunjukkan kelebihan dari algoritma Shannon-Fano yaitu merupakan algoritma yang efisien untuk memampatkan file-file besar dan membutuhkan sedikit waktu untuk melakukan kompresi dan dekompresi, dan dapat digunakan untuk mengkompresi file gambar.

Dalam penelitian ini teknik pemampatan yang digunakan adalah statistical compression Shannon-Fano yaitu sebuah algoritma yang mempunyai metode yang baik dan sederhana tetapi hampir tidak pernah digunakan dan dikembangkan lagi setelah kemunculan algoritma Hufman. Pada dasarnya metode ini menggantikan setiap simbol dengan sebuah alternatif kode biner yang panjangnya ditentukan berdasarkan probabilitas dari simbol tersebut (Rhee, 2003).

(21)

dapat mempermudah dalam menentukan nilai elemen pritive  (primitive Root) Algoritma ElGamal dan memperkecil ukuran pesan cipher sehingga dapat disimpan dalam ruang penyimpanan terbatas.

1.2 Perumusan Masalah

Salah satu faktor terpenting dalam pembentukan kunci algoritma ElGamal adalah penentuan elemen primitive α (primitive root). Untuk penentuan ini harus dilakukan dua kali perhitungan ordo modulo perpangkatan yang berbeda. Tidak hanya penentuan

elemen primitive α (primitive root), pesan cipher yang dihasilkan dari proses enkripsinya juga berukuran dua kali lebih besar dari pesan plainteksnya, sehingga file

membutuhkan ruang penyimpanan yang besar. Oleh karena itu diperlukan sebuah algoritma untuk menentukan elemen primitive α (primitive root) dan algoritma kompresi untuk memperkecil ukuran file

1.3 Pembatasan Masalah

Agar fokus terhadap perumusan masalah, perlu dilakukan pembatasan masalah berikut:

- Aplikasi ini digunakan untuk pesan teks yang besar terdiri dari huruf-huruf, angka dan tanda baca seperti titik, koma, spasi dan sebagainya yang tersedia pada

keyboard.

- Menentukan elemen primitive (primitive root) secara algoritmik yang merupakan salah satu faktor penentuan kunci public pada algoritma ElGamal.

- Untuk memampatkan pesan teks digunakan algoritma kompresi Shannon-Fano.

1.4 Tujuan Penelitian

(22)

1.5 Manfaat Penelitian

(23)

BAB 2

TINJAUAN PUSTAKA

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani yang secara etimologi terdiri dari dua kata yaitu cryptos yang berarti tersembunyi dan graphein yang berarti menulis. Sedangkan pengertian kriptografi adalah metode untuk mengirimkan pesan secara rahasia (yaitu, dalam penyamaran bentuk) sehingga hanya penerima yang dimaksud yang dapat membaca dan memahami pesan tersebut. (Mollin, 2007). Kriptografi adalah sebuah seni untuk menjaga keamanan pesan. Seni merubah pesan yang sebenarnya menjadi pesan yang tidak berarti sehingga pihak lain yang tidak berkepentingan tidak dapat memahaminya (Bishop, 2003). Menurut Hankerson et al (2004) kriptografi merupakan sebuah analisis dan perancangan teknik-teknik matematika yang dapat mengamankan komunikasi terhadap musuh yang berbahaya.

Keamanan kriptografi modern tidak didasarkan pada kerahasiaan algoritma, tetapi pada kerahasiaan informasi yang relatif sedikit, yang disebut kunci rahasia. Kunci (key) adalah parameter yang digunakan untuk mengontrol transformasi kriptografi (ciphering) dan merupakan elemen yang dapat diubah. Pengguna dapat mengubah kunci setiap saat sedangkan algoritma penyandiannya sendiri adalah elemen konstan dari cryptosystem yang merupakan hasil dari penelitan dan pengujian jangka panjang (Moldovyan, 2007).

Kriptografi bertujuan memberikan aspek keamanan kepada pengguna yang terdiri dari :

1. Kerahasiaan (Confidentiality)

Kerahasiaan digunakan untuk menjaga pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.

2. Otentikasi (Authentication)

(24)

3. Integritas (Integritas)

Penerima harus dapat memeriksa apakah pesan telah dimodifikasi di tengah jalan atau tidak. Seorang penyusup seharusnya tidak dapat memasukkan tambahan ke dalam pesan, mengurangi atau mengubah pesan selama data berada diperjalanan. 4. Penyangkalan (Nonrepudation)

Pengirim tidak dapat mengelak bahwa telah mengirim pesan, penerima juga tidak dapat mengelak bahwa dia telah menerima pesan tersebut. (Menezes, 1996) Untuk mencapai keempat aspek keamanan tersebut, banyak bermunculan algoritma-algoritma baru yang dianggap lebih unggul daripada pendahulunya. Saat ini algoritma-algoritma kriptografi dikelompokkan menjadi dua bagian, yaitu : algoritma simetris (algoritma konvensional) dan algoritma asimetris (algoritma kunci publik) (Menezes, 1996).

1. Algoritma Simetris

Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kunci-simetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Sistem kriptografi kunci-simetri (atau disingkat menjadi

“kriptografi simetri” saja), mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya.

Kelebihan kriptografi simetri :

1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.

2. Ukuran kunci simetri relatif pendek.

3. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat.

4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

Kelemahan kriptografi simetri :

1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini.

(25)

2. Algoritma Asimetris

Algoritma asimetris atau kunci publik didesain sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi dimana kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan (rahasia).

Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri.

Kelebihan kriptografi kunci-publik (asimetri):

1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetri.

2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.

4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.

Kelemahan kriptografi kunci-publik (asimetri):

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.

2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks).

3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.

4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block

(26)

2.2 Algoritma Kriptografi ElGamal

2.2.1 Sejarah Algoritma Kriptografi ElGamal

Kunci public kriptografi pertama diperkenalkan oleh Diffie dan Hellman pada tahun 1976. Mereka mengusulkan dua entitas pada kunci rahasia melalui saluran public dimana protocol pertukaran kunci dapat digunakan baik untuk mengenkripsi maupun mendekripsi data atau untuk penandatanganan pesan digital dan memverifikasi tanda tangan digital. (Oppliger, 2005)

Pada tahun 1984, Taher ElGamal mengumumkan skema kunci public berdasarkan logaritma diskrit, berkaitan dengan teknik Diffie-Hellman. Cryptosystem ElGamal digunakan dalam beberapa bentuk jumlah standar termasuk tanda tangan digital standar (DSS) dan S/MIME e-mail standar (Secure/Multipurpose Internet Mail Extension). Seperti Diffie-Hellman, unsur-unsur global ElGamal adalah bilangan prima dan merupakan akar primitif (primitive root). (William, 2005)

2.2.2 Landasan Matematika Algoritma ElGamal

a. Bilangan Prima

Yaitu bilangan yang hanya dapat dibagi oleh 1 dan bilangan itu sendiri. Suatu bilangan bulat p > 1 disebut prima jika p hanya mempunyai tepat dua bilangan pembagi positif yaitu 1 dan p. Jika tidak, p disebut komposit. (Buchmann,2000)

Algoritma Bilangan Prima Lehmann (Scheineir, 1996)

Input : Bilangan acak a kurang dari p

(27)

persekutuan terbesar (PBB - greatest common divisor atau gcd) dari a dan b adalah bilangan bulat terbesar d sedemikian hingga d|a dan d|b. Dapat dinyatakan bahwa PBB atau gcd(a, b) = d. (Menezes, van Oorschot dan Vanstone, 1996).

Algoritma Euclidean (Menezes, Oorschot and Vanstone, 1996)

Input : Bilangan bulat nonnegatif a dan b, a b .

Algoritma Aritmatika Modulo (Menezes, Oorschot and Vanstone, 1996)

(28)

- untuk i from n down to (t + 1) kerjakan : dalam hal ini k adalah bilangan bulat. Berdasarkan definisi aritmetika modulo, dapat dituliskan a b mod m

Fungsi ini digunakan untuk menghitung operasi pemangkatan bilangan bulat modulo.

Algoritma Exponentiation (Menezes, Oorschot and Vanstone, 1996)

Input : m = (ml−1…m0)b, R = bl, ml = −m−1mod b, e = (et…e0)2dimana et=1,

(29)

Langkah : Algoritma Invers Modulo (Menezes, Oorschot and Vanstone, 1996)

(30)

Jika digunakan bilangan prima p yang sama dengan p = 2 . q + 1 dan q adalah

Output : elemen primitif atau bukanelemen primitive

Langkah :

Proses pertama adalah pembentukan kunci yang terdiri dari kunci private (rahasia) dan kunci public (umum). Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup Zp*, elemen primitif α dan sembarang a  {1,...,

p2}. Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu (p, α, ), dengan = αa� � Sedangkan kunci rahasianya adalah bilangan a tersebut. Karena pada algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat.

(31)

1. Pilih sembarang bilangan prima p besar dan elemen primitif (Primitive Root) grup pasangan (a, p). Pihak yang membuat kunci publik dan kunci rahasia adalah pengirim, sedangkan pihak penerima hanya mengetahui kunci publik yang diberikan oleh pengirim, dan kunci publik tersebut digunakan untuk mengenkripsi pesan. Jadi, keuntungan menggunakan algoritma kriptografi kunci publik adalah tidak ada permasalahan pada distribusi kunci apabila jumlah pengirim sangat banyak serta tidak ada kepastian keamanan jalur yang digunakan.

2.2.3.2 Proses Enkripsi

Pada proses ini pesan dienkripsi menggunakan kunci publik ( , α, p) dan sembarang bilangan acak rahasia k  {1,..., p2}. Misalkan m adalah pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plainteks m1, m2,

...,mn dengan mi  {1, 2,..., p1}, i = 1, 2,..., n. Untuk nilai ASCII pemisah “;”

digunakan untuk menandai akhir dari suatu teks.

Proses enkripsi pada algoritma ElGamal dilakukan dengan menghitung : = �� � dan = �.�� �

dengan k  {1, ..., p2}acak rahasia. Bilangan acak k ditentukan oleh pihak pengirim dan harus dirahasiakan, jadi hanya pengirim yang mengetahuinya. Sedangkan nilai k

hanya digunakan saat melakukan enkripsi dan tidak perlu disimpan. Diperoleh cipherteks ( , ). Algoritma enkripsi pesan :

1. Susun plainteks menjadi blok-blok, m1, m2,…, sedemikian sehingga setiap blok

merepresentasikan nilai di dalam rentang 0 sampai p – 1 (dengan mengubah nilai m

menjadi kode ASCII).

2. Pilih bilangan acak k, yang dalam hal ini 0 < k < p – 1, sedemikian sehingga k

relatif prima dengan p – 1.

(32)

= αkmod p dan = βk m mod p.

Pasangan dan adalah cipherteks untuk blok pesan m.

2.2.3.3 Proses Dekripsi

Setelah menerima cipherteks ( , ), proses selanjutnya adalah mendekripsi cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat ditunjukkan bahwa plainteks

m dapat diperoleh dari cipherteks menggunakan kunci rahasia a.

Diberikan (p, α, ) sebagai kunci publik dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks ( , ), maka untuk mendekripsi dan  digunakan kunci rahasia a, dan plainteks m diperoleh kembali dengan persamaan :

� = .( α)–1� �

m = / amod p

Karena Zp* merupakan grup siklik yang mempunyai order p1 dan a  {1,..., p 2}, maka ( �)−1 = −� = mod p

Algoritma Dekripsi pesan : 1. Untuk i dari 1 sampai n :

Hitung mod p

Hitung mi = . ( �)-1 mod p

4. Diperoleh plainteks m1m2,..., mn.

5. Konversikan masing-masing bilangan m1, m2,..., mn ke dalam karakter sesuai

dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali.

2.3 Kompresi

2.3.1 Defenisi Kompresi

Kompresi data adalah ilmu atau seni merepresentasikan informasi dalam bentuk yang lebih compact. Pengertian lain dari data kompresi adalah proses mengkonversikan sebuah input data stream (stream sumber atau stream yang telah tekompresi) yang berukuran kebih kecil. (Mengyi Pu, 2006)

(33)

membentuk kembali data aslinya. Data digital ini dapat berupa text, gambar, suara dan kombinasi dari ketiganya seperti video.

Untuk membuat suatu data menjadi lebih kecil ukurannya dari pada data asli, diperlukan algoritma tertentu. Dalam algortima kompresi data, tidak ada algoritma yang cocok untuk semua jenis data. Hal ini disebabkan karena data yang akan dikompres harus dianalisis terlebih dahulu, dan berharap menemukan pola tertentu yang dapat digunakan untuk memperoleh data dalam bentuk yang lebih kecil, karena itu muncul banyak algortima-algortima kompresi data.

2.3.2 Penggolongan Algoritma Kompresi

Secara umum algoritma kompresi data dapat digolongkan menjadi 2 (dua) golongan yaitu :

1. Kompresi Lossy

Algoritma kompresi dikatakan lossy atau disebut irreversibe jika tidak dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Ada beberapa detail yang hilang selama proses kompresi. Contoh penggunaan algoritma lossy seperti pada data gambar, suara dan video. Karena cara kerja sistem penglihatan dan pendengaran manusia yang terbatas beberapa detail dapat dihilangkan sehingga data hasil kompresi seolah-olah sama dengan data asli.

2. Kompresi Lossless

Algoritma kompresi dikatakan lossless atau disebut juga reversible jika dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Tidak ada informasi yang hilang selama proses kompresi dan dekompresi. Teknik ini digunakan jika data tersebut sangat penting, jadi tidak dimungkinkan untuk menghilangkan beberapa detail.

2.3.3 Algoritma Kompresi Shannon-Fano

(34)

Algoritma Shannon-Fano ini menghasilkan sebuah kode dengan jumlah bit yang lebih sedikit untuk setiap karakter. Langkah-langkah kompresi Shannon-Fano, sebagai berikut:

- Buat tabel yang memuat frekuensi kemunculan dari tiap karakter.

- Mengurutkan frekuensi tersebut dengan karakter yang frekuensinya paling sering muncul berada di atas dari daftar (descending)

- Membagi karakter-karakter tersebut menjadi 2 kelompok yaitu atas dan bawah dengan jumlah total frekuensi pada bagian atas mendekati jumlah total frekuensi pada bagian bawah.

- Untuk sebelah atas diberikan kode 0 dan sebelah bawah diberikan kode 1

- Ulangi langkah 3 dan 4 pada masing-masing kelompok hingga seluruh karakter dapat berdiri sendiri dan mempunyai kode bit yang unik.

2.4 Riset Terkait

Terdapat beberapa riset terkait dalam penelitian ini yang telah dilakukan oleh peneliti sebelumnya. Adapun beberapa riset tersebut adalah :

(35)

Haraty (2005)

Supriadi (2006) Analisis Varian Algoritma Tanda Tangan Digital

(36)

Sentil, S.

2.5 Persamaan dan Perbedaan dengan Riset-riset lain

Persamaan penelitian ini dengan riset yang sebelumnya adalah menggunakan algoritma ElGamal dalam pengamanan pesan dan menggunakan algoritma Shannon-Fano dalam memampatkan pesan teks. Sedangkan perbedaannya adalah penelitian ini menganalisis terbentuknya akar primitif sebagai salah satu variabel pembentukan kunci serta menganalisis kompresi Shannon-Fano dalam memampatkan pesan yang dienkripsi menggunakan algoritma kriptografi ElGamal.

2.6 Kontribusi Penelitian

(37)

BAB 3

METODOLOGI PENELITIAN

3.1 Pengumpulan dan Sumber Data

Pengumpulan data yang digunakan dalam penelitian ini adalah studi literatur yaitu penelusuran literatur yang bersumber dari buku, media, pakar ataupun dari hasil penelitian orang lain yang bertujuan untuk menyusun dasar teori yang digunakan dalam melakukan penelitian. Kemudian dilakukan pengumpulan data berupa data teks dengan kalimat panjang atau beberapa paragraph/alinea. Data teks tersebut nantinya akan dienkripsi menggunakan algoritma ElGamal dan dikompresi menggunakan algoritma Shannon-Fano.

3.2 Pengolahan Data

Data yang telah dikumpulkan kemudian diolah dengan langkah-langkah sebagai berikut :

3.2.1 Pembangkit Bilangan Acak

Bilangan p dan a akan dibangkitkan secara acak menggunakan program, dimana bilangan p adalah bilangan prima, sedangkan bilangan a adalah bilangan bulat yang merupakan a  {0,1,…,p-2). Oleh karena itu, bilangan p yang didapat secara acak tersebut harus diuji kembali keprimaannya. Dalam penelitian ini, penulis menggunakan teori Lehmann untuk menguji keprimaan nilai p tersebut. Dalam teori Lehmann dinyatakan bahwa untuk setiap bilangan prima p dan setiap bilangan a yang kurang dari p dan tidak habis dibagi oleh p, maka berlaku :

(3.1)

3.2.2 Penentuan Akar Primitif () pada Algoritma ElGamal

Sistem yang penulis rancang terdiri dari tahap penentuan bilangan prima p, yang akan mengenerate akar primitif (α), dimana untuk bilangan bulat acak yang merupakan

elemen primitive  (primitive Root) grup Zp* dari bilangan bulat mod p, ditentukan :

(38)

residu modulo p, terdapat 0 atau (e) yang berbeda untuk m Z, 0 mp − 1, dengan ordp (m) = e secara khusus terdapat (p −1) akar primitive modulo p. (Mollin,

2007). Selanjutnya adalah proses enkripsi-kompresi dan proses dekompresi-dekripsi.

3.2.3 Proses Enkripsi-Kompresi

Tahapan enkripsi-kompresi berguna untuk mengamankan pesan dan memampatkan ukuran pesan teks, dimana untuk mengamankan pesan penulis menggunakan algoritma ElGamal dan untuk memampatkan pesan penulis menggunakan algoritma Shannon-Fano. Tahapan ini dimulai dengan pembentukan kunci yaitu dengan menentukan bilangan prima p, menentukan akar primitif (α atau g) dan menentukan bilangan bulat x, proses selanjutnya adalah menghitung y = gx mod p dan kemudian akan didapatkan kunci privat (x, p) dan kunci public (p, g, y). Setelah proses pembentukan kunci ElGamal, dilanjutkan ke proses enkripsi untuk menghasilkan

ciphertextnumber yaitu dengan mengetikan plaintext yang akan dienkripsi, plaintext

dipotong-potong kedalam bentuk blok-blok pesan yang kemudian dikonversikan kedalam kode ASCII, setiap plainnumber yang telah diblok dimasukkan kedalam rumus yang telah ditetapkan, sehingga diperolehlah ciphertextnumber dari proses enkripsi. Adapun flowchart dari proses enkripsi pesan teks dapat dilihat pada gambar 3.1.

Gambar 3.1. Flowchart Proses Enkripsi

(39)

Ciphertextnumber yang dihasilkan dari proses enkripsi menggunakan algoritma ElGamal berukuran 2 (dua) kali lebih besar dari pesan aslinya (plaintext), sehingga dilakukan

proses kompresi dengan menggunakan algoritma kompresi Shannon-Fano. Adapun

flowchart proses kompresi dapat dilihat pada gambar 3.2.

Gambar 3.2 Flowchart Proses Kompresi

Gambar 3.2 menjelaskan bahwa ciphertext yang diperoleh dari proses enkripsi kemudian dikompresi, agar pesan termampatkan. Adapun proses yang dilakukan dengan menggunakan algoritma Shannon-Fano adalah membuat tabel yang memuat frekuensi kemunculan dari tiap karakter, mengurutkan frekuensi tersebut dengan karakter yang frekuensinya paling sering muncul berada di atas dari daftar (descending), membagi karakter-karakter tersebut menjadi 2 kelompok yaitu atas dan bawah dengan jumlah total frekuensi pada bagian atas mendekati jumlah total frekuensi pada bagian bawah dan memberikan kode 0 untuk sebelah atas dan kode 1 untuk sebelah bawah, mengulangi langkah sebelumnya pada masing-masing kelompok hingga seluruh karakter dapat berdiri sendiri dan mempunyai kode bit yang unik. Hasil dari proses tersebut akan menghasilkan ciphertextnumber terkompresi.

(40)

3.2.4 Proses Dekompresi-Dekripsi

Tahapan dekompresi-dekripsi digunakan untuk mengembalikan pesan teks kebentuk semula, yaitu dengan melakukan proses dekompresi terlebih dahulu, kemudian diakhiri dengan proses dekripsi. Adapun urutan proses yang akan dilakukan pada tahapan dekompresi adalah mengidentifikasi data teks hasil kompresi yang sudah diubah menjadi karakter pengganti, kemudian karakter pengganti diubah terlebih dahulu menjadi kode biner yang dilanjutkan dengan penelusuran tabel biner dengan tujuan agar kode biner yang ditemukan dapat dibaca oleh pengguna dalam bentuk kode ASCII. Hasil dari proses dekompresi akan diperoleh ciphertext dengan ukuran yang sama sebelum ciphertext tersebut dimampatkan. Untuk pengembalikan

ciphertext ke pesan aslinya (plaintext), maka dilakukan proses dekripsi dengan menggunakan kunci privat. Adapun urutan yang akan dilakukan pada proses dekripsi adalah mengambil nilai x, p sebagai kunci privat dari proses pembentukan kunci ElGamal, masukan ciphertext kedalam rumus yanng telah ditetapkan, pindahkan

plaintextnumber ke plaintextchar.

3.3 Proses Analisis

3.3.1 Analisis Akar Primitif pada Algoritma ElGamal

Sebelum penentuan akar primitif perlu diketahui terlebih dahulu teori bilangan yang

terdiri dari order bilangan bulat dan teorema euler ().

a. Order bilangan bulat (Ordo Modulo)

e disebut ordo dari m modulo n apabila e adalah bilangan bulat positif terkecil sehingga me≡ 1 (mod n). ditulis e = ordn (m).

Contoh : Ordo dari 3 modulo 5 dapat diperoleh dengan mencari pangkat positif dari 3 yang menghasilkan residu 1 (modulo 5).

Tabel 3.1 Perhitungan Ordo 3 modulo 5

e 3e (mod 5)

1 3

2 4

3 2

(41)

Berdasarkan tabel diatas dapat dilihat bahwa ordo dari 3 modulo 5 adalah 4,

3.3.1.1 Penentuan akar primitive mengunakan ordo modulo perpangkatan

Untuk menentukan sebuah bilangan adalah akar primitive terebih dahulu ditentukan bilangan prima (p) dan elemen primitive (a) yang kemudian dilakukan peritungan menggunakan rumus : g2 (mod p) dan ga (mod p) dimana a = p-1.

(42)

Dalam hal ini g dikatakan akar primitive jika g2 (mod p) ≠ 1 dan ga (mod p) ≠ 1.

Dari tabel 3.2 diketahui bahwa g = 2, 6, 8 adalah akar primitive dari modulo 59.

3.3.1.2 Penentuan akar primitive secara algoritmik

Setelah mengetahui order bilangan bulat dan teorema euler (), akan dicari akar primitive secara algoritmik dengan ketentuan : m disebut akar primitif modulo n

Sebelum menjawab pertanyaan di atas terlebih dahulu dilakukan perhitungan ordo modulo dan fungsi euler () berikut :

Tabel 3.3 Perhitungan ordo 6 modulo 59

(43)

e 6e (mod 59) e 6e (mo2d 59)

Berdasarkan hasil perhitungan diatas 6 adalah akar primitif modulo 59 dimana ord6(59) = 58 dan  (59) = 58 atau ord6(59) =  (59)

3.3.2. Analisis Proses Enkripsi-Kompresi

- Proses Enkripsi

(44)

proses enkripsi pesan yang bertujuan untuk merubah pesan asli (plaintext) ke bentuk pesan rahasia (ciphertext). Adapun urutan proses enkripsi pesan tersebut adalah : 1. Masukkan teks yang akan dienkripsi (plaintext).

Plaintext = BEBASKAN SAYA

2. Pesan dipotong menjadi blok-blok karakter dan dikonversi ke dalam kode ASCII.

Tabel 3.4 Konversi Blok Karakter ke dalam Kode ASCII

(45)

i mi x gxmod p.�� �

Diperoleh hasil enkripsi pesan berikut :

123212139219221674390111104221101760109172623815733162138200

39145194

Selanjutnya, dilakukan proses kompresi yang bertujuan untuk memampatkan pesan yang dalam penelitian ini adalah pesan ciphertextnumber hasil enkripsi. Algoritma kompresi yang digunakan adalah Shannon-Fano, dengan langkah-langkah sebagai berikut:

1. Membuat daftar kemunculan karakter dan urutan karakter sesuai frekuensi kemunculannya secara descending.

Misal : Plaintextnya adalah BEBASKAN SAYA, terbentuk ciphertextnumber dari proses enkripsi adalah :

1232121392192216743901111042211017601091726238157331621382003

9145194

(46)

2. Membagi karakter-karakter tersebut menjadi 2 kelompok yaitu atas dan bawah dengan jumlah total frekuensi pada bagian atas mendekati jumlah total frekuensi pada bagian bawah.

Tabel 3.7 Pembagian Karakter menjadi 2 Kelompok Besar

Number Frekuensi Kelompok

3. Pemberian kode, untuk sebelah atas diberikan kode 0 dan sebelah bawah diberikan kode 1

Fase 1 : Pemberian kode berdasarkan pembagian karakter pada fase 1 dapat dilihat pada tabel 3.8.

Tabel 3.8 Pemberian Kode pada Fase 1

(47)

Fase 2 : Pemberian kode berdasarkan pembagian karakter pada fase 2 dapat dilihat pada tabel 3.9.

Tabel 3.9 Pemberian Kode pada Fase 2

Number Frekuensi Kode

Fase 3 : Pemberian kode berdasarkan pembagian karakter pada fase 3 dapat dilihat pada tabel 3.10.

Tabel 3.10 Pemberian Kode pada Fase 3

(48)

Fase 4 : Pemberian kode berdasarkan pembagian karakter pada fase 4 dapat dilihat pada tabel 3.11.

Tabel 3.11 Pemberian Kode pada Fase 4

Number Frekuensi Kode

Fase 5 : Pemberian kode berdasarkan pembagian karakter pada fase 4 dapat dilihat pada tabel 3.12.

Tabel 3.12 Pemberian Kode pada Fase 5

(49)

4. Setelah fase-fase pemberian kode berdasarkan pembagian karakter selesai, diperoleh hasil kompresi yang dapat dilihat pada tabel 3.13 berikut :

Tabel 3.13 Hasil Kompresi

Number Frekuensi Kode Hasil

1 19 0 0 00

Instrumen yang digunakan dalam penelitian ini adalah : 1. Pesan yang akan diproses adalah pesan teks.

2. Hardware (dual core processor, memory 2 Gb, Harddisk 500 Gb, etc).

(50)

BAB 4

HASIL PENELITIAN DAN PEMBAHASAN

4.1 Pendahuluan

Pada bab ini, penulis melakukan uji coba dengan menggenerate bilangan prima p dan akar primitif (g) secara acak, sehingga membentuk kunci yang terdiri dari kunci public dan kunci private. Dan untuk mengimplementasikan kombinasi dua buah algoritma yaitu algoritma kriptografi ElGamal untuk keamanan data dan algoritma Kompresi Shannon-Fano untuk pemampatan, dilakukan proses uji coba terhadap beberapa pesan teks. Kemudian menganalisis terbentuknya akar primitif dan menganalisis pesan hasil kombinasi, yang berupa pesan chipertextnumber terkompresi.

4.2 Hasil Uji Coba

4.2.1. Penentuan Akar Primitif

Pada percobaan ini penulis menggenerate bilangan prima p dan akar primitif (g) menggunakan sebuah program kombinasi algoritma ElGamal dan algoritma Shannon-Fano dengan nilai bervariasi. Adapun hasil uji coba yang penulis lakukan, dapat dilihat pada gambar berikut ini :

- Uji Coba ke-1

Menggenerate bilangan prima kecil satu digit yaitu p = 5 sehingga terbentuk akar primitif g = 3 dan dua buah kunci (public dan private). Hasil dari proses dapat dilihat pada gambar 4.1 berikut :

Gambar 4.1. Percobaan ke-1 - Uji Coba ke-2

(51)

Gambar 4.2. Percobaan ke-2

- Uji Coba ke-3

Menggenerate bilangan prima tiga digit yaitu p = 107 sehingga terbentuk akar primitif g = 5 dan dua buah kunci (public dan private). Hasil dari proses dapat dilihat pada gambar 4.3 berikut :

Gambar 4.3. Percobaan ke-3

- Uji Coba ke-4

Menggenerate bilangan prima empat digit yaitu p = 1619 sehingga terbentuk akar primitif g = 5 dan dua buah kunci (public dan private). Hasil dari proses dapat dilihat pada gambar 4.4 berikut :

Gambar 4.4. percobaan ke-4

- Uji Coba ke-5

Menggenerate bilangan prima lima digit yaitu p = 10799 sehingga terbentuk akar primitif g = 19 dan dua buah kunci (public dan private). Hasil dari proses dapat dilihat pada gambar 4.1 berikut :

(52)

4.2.2. Hasil Simulasi Kombinasi Proses Enkripsi-Kompresi dan Proses Dekompresi-Dekripsi

Proses simulasi dilakukan sebanyak 12 (dua belas kali) terhadap pesan teks dengan beberapa pola berbeda. Dalam uji coba ini digunakan bilangan prima p = 1187, akar primitif g = 5, dan kunci public (p, g, y) = (1187, 5, 475) serta kunci privat (x, p) = (1185,1187).

- Uji coba ke-1

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

yang terdiri dari sebuah karakter (a) dengan ukuran 532 bytes. Hasil uji coba dapat dilihat pada gambar 4.6 berikut :

Gambar 4.6 Hasil Enkripsi Pesan Uji Coba ke-1

(53)

Gambar 4.7 Hasil Kompresi Ciphertextnumber Uji Coba ke-1

Dari hasil uji coba ke-1 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4316 bytes dan membutuhkan alokasi sekitar 34528 bit dapat termampatkan sebesar 54,1, yaitu hanya membutuhkan alokasi sekitar 15858 bit atau 1982 bytes.

(54)

Gambar 4.8 Hasil Dekompresi Pesan Uji Coba ke-1

Gambar 4.8 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1982 bytes kembali keukuran awal yaitu 4316 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.9 berikut :

Gambar 4.9 Hasil Dekripsi Pesan Uji Coba ke-1

Gambar 4.9 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari satu karakter (a) dengan ukuran 532 bytes.

- Uji Coba ke-2

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

(55)

Gambar 4.10 Hasil Enkripsi Pesan Uji Coba ke-2

Gambar 4.10 menunjukkan bahwa proses enkripsi yang dilakukan, menyebabkan setiap karakter berubah menjadi pasangan numerik (a, b) dimana dalam program ini setiap pasangan numerik (a, b) ditandai menggunakan karakter a, sedangkan antar sesama pasangan numerik ditandai dengan karakter b. Hasil dari proses enkripsi adalah sebuah pesan cipher yang kemudian dikompresi menggunakan algoritma Shannon Fano. Hasil uji coba dapat dilihat pada gambar 4.11 berikut :

(56)

Dari hasil uji coba ke-2 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya 4315 bytes dan membutuhkan alokasi sekitar 34520 bit ini dapat termampatkan sebesar 53,9, yaitu hanya membutuhkan alokasi sekitar 15902 bit atau 1988 bytes.

Selanjutnya adalah proses dekompresi-dekripsi. Pesan yang telah terkompresi akan dikembalikan keukuran sebelum dilakukan kompresi dan dikembalikan ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.12 dan 4.13 berikut :

Gambar 4. 12 Hasil Dekompresi Pesan Uji Coba ke-2

Gambar 4.12 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1988 bytes kembali keukuran awal yaitu 4315 bytes.

(57)

Gambar 4.13 Hasil Dekripsi Pesan Uji Coba ke-2

Gambar 4.13 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang terdiri dari dua karakter (aaaaaaaaaa, bbbbbbbbbbb) dengan ukuran 532 bytes.

- Uji coba ke-3

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

dengan ukuran text 532 bytes, terdiri dari dua buah karakter dengan pola (aaaa, bbbb, cccc). Hasil uji coba dapat dilihat pada gambar 4.14 berikut:

(58)

Gambar 4.14 menunjukkan bahwa proses enkripsi yang dilakukan, menyebabkan setiap karakter berubah menjadi pasangan numerik (a, b) dimana dalam program ini setiap pasangan numerik (a, b) ditandai menggunakan karakter a, sedangkan antar sesama pasangan numerik ditandai dengan karakter b. Hasil dari proses enkripsi adalah sebuah pesan cipher yang kemudian dikompresi menggunakan algoritma Shannon Fano. Hasil uji coba dapat dilihat pada gambar 4.15 berikut :

Gambar 4.15 Hasil Kompresi Ciphertextnumber Uji Coba ke-3

Dari hasil uji coba ke-3 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4339 bytes dan membutuhkan alokasi sekitar 34712 bit dapat termampatkan sebesar 54,0 , yaitu hanya membutuhkan alokasi sekitar 15961 bit atau 1995 bytes.

(59)

Gambar 4. 16 Hasil Dekompresi Pesan Uji Coba ke-3

Gambar 4.16 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1995 bytes kembali keukuran awal yaitu 4339 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.17 berikut :

(60)

Gambar 4.17 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang terdiri dari tiga karakter (aaaa, bbbb, cccc) dengan ukuran 532 bytes.

- Uji Coba ke-4

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

dengan ukuran 532, terdiri dari tiga buah karakter dengan pola (aaaa, bbbb, cccc, dddd). Hasil uji coba dapat dilihat pada gambar 4.18 berikut :

Gambar 4.18 Hasil Enkripsi Pesan Uji Coba ke-4

(61)

Gambar 4.19 Hasil Kompresi Chippertextnumber Uji Coba ke-4

Dari hasil uji coba ke-4 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4319 bytes dan membutuhkan alokasi sekitar 34552 bit dapat termampatkan sebesar 51,8, yaitu hanya membutuhkan alokasi sekitar 15948 bit atau 1994 bytes.

Selanjutnya adalah proses dekompresi-dekripsi. Pesan yang telah terkompresi akan dikembalikan keukuran sebelum dilakukan kompresi dan dikembalikan ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.20 dan 4.21 berikut :

(62)

Gambar 4.20 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1994 bytes kembali keukuran awal yaitu 4139 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.21 berikut :

Gambar 4.21 Hasil Dekripsi Pesan Uji Coba ke-4

Gambar 4.21 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari empat karakter (aaaa, bbbb, cccc, dddd) dengan ukuran 532 bytes.

- Uji Coba ke-5

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

(63)

Gambar 4.22 Hasil Enkripsi Pesan Uji Coba ke-5

Gambar 4.22 menunjukkan bahwa proses enkripsi yang dilakukan, menyebabkan setiap karakter berubah menjadi pasangan numerik (a, b) dimana dalam program ini setiap pasangan numerik (a, b) ditandai menggunakan karakter a, sedangkan antar sesama pasangan numerik ditandai dengan karakter b. Hasil dari proses enkripsi adalah sebuah pesan cipher yang kemudian dikompresi menggunakan algoritma Shannon Fano. Hasil uji coba dapat dilihat pada gambar 4.23 berikut :

(64)

Dari hasil uji coba ke-5 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4324 bytes dan membutuhkan alokasi sekitar 34592 bit dapat termampatkan sebesar 54,0, yaitu hanya membutuhkan alokasi sekitar 15915 bit atau 1989 bytes.

Selanjutnya adalah proses dekompresi-dekripsi. Pesan yang telah terkompresi akan dikembalikan keukuran sebelum dilakukan kompresi dan dikembalikan ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.24 dan 4.25 berikut :

Gambar 4. 24 Hasil Dekompresi Pesan Uji Coba ke-5

Gambar 4.24 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1989 bytes kembali keukuran awal yaitu 4324 bytes.

(65)

Gambar 4.25 Hasil Dekripsi Pesan Uji Coba ke-5

Gambar 4.25 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari dua karakter (abababab) dengan ukuran 532 bytes.

- Uji Coba ke-6

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

(66)

Gambar 4.26 Hasil Enkripsi Pesan Uji Coba ke-6

Gambar 4.26 menunjukkan bahwa proses enkripsi yang dilakukan, menyebabkan setiap karakter berubah menjadi pasangan numerik (a, b) dimana dalam program ini setiap pasangan numerik (a, b) ditandai menggunakan karakter a, sedangkan antar sesama pasangan numerik ditandai dengan karakter b. Hasil dari proses enkripsi adalah sebuah pesan cipher yang kemudian dikompresi menggunakan algoritma Shannon Fano. Hasil uji coba dapat dilihat pada gambar 4.27 berikut :

Gambar 4.27 Hasil Kompresi Chipertextnumber Uji Coba ke-6

Dari hasil uji coba ke-6 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4318 bytes dan membutuhkan alokasi sekitar 34544 bit dapat termampatkan sebesar 53,9, yaitu hanya membutuhkan alokasi sekitar 15927 bit atau 1991 bytes.

(67)

Gambar 4. 28 Hasil Dekompresi Pesan Uji Coba ke-6

Gambar 4.28 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1991 bytes kembali keukuran awal yaitu 4318 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.29 berikut :

(68)

Gambar 4.29 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari tiga karakter (abcabcabcabcabc) dengan ukuran 532 bytes.

- Uji Coba ke -7

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

yang berukuran 532 bytes terdiri dari empat buah karakter dengan pola (abcdabcdabcdabcd). Hasil uji coba dapat dilihat pada gambar 4.30 berikut :

Gambar 4.30 Hasil Enkripsi Pesan Uji Coba ke-7

(69)

Gambar 4.31 Hasil Kompresi Chipertextnumber Uji Coba ke-7

Dari hasil uji coba ke-7 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4328 bytes dan membutuhkan alokasi sekitar 34624 bit dapat termampatkan sebesar 54,0, yaitu hanya membutuhkan alokasi sekitar 15926 bit atau 1991 bytes.

(70)

Gambar 4.32 Hasil Dekompresi Pesan Uji Coba ke-7

Gambar 4.32 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1991 bytes kembali keukuran awal yaitu 4328 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.33 berikut :

(71)

Gambar 4.33 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari empat karakter (abcdabcdabcd) dengan ukuran 532 bytes.

- Uji Coba ke-8

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

yang berukuran 532 bytes terdiri dari tiga buah karakter dengan pola (aaaa,bbbb,cccc,dd). Hasil uji coba dapat dilihat pada gambar 4.34 berikut :

Gambar 4.34 Hasil Enkripsi Pesan Uji Coba ke-8

(72)

Gambar 4.35 Hasil Kompresi Chipertextnumber Uji Coba ke-8

Dari hasil uji coba ke-8 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 4335 bytes dan membutuhkan alokasi sekitar 34680 bit dapat termampatkan sebesar 54,0, yaitu hanya membutuhkan alokasi sekitar 15939 bit atau 1992 bytes.

(73)

Gambar 4.36 Hasil Dekompresi Pesan Uji Coba ke-8

Gambar 4.36 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 1992 bytes kembali keukuran awal yaitu 4335 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.37 berikut :

(74)

Gambar 4.37 menunjukkan bahwa dengan menggunakan kunci public dan kunci privat yang sama pesan cipher dapat dikembalikan ke bentuk semula yaitu teks yang hanya terdiri dari empat karakter (aaaa, bbbb, cccc, dd) dengan ukuran 532 bytes.

- Uji Coba ke-9

Uji coba ini melakukan proses enkripsi-kompresi menggunakan pesan plaintext

berukuran 26 bytes, terdiri dari semua karakter (abjad). Hasil uji coba dapat dilihat pada gambar 4.38 berikut :

Gambar 4.38 Hasil Proses Enkripsi Pesan Uji Coba ke-9

(75)

Gambar 4.39 Hasil Kompresi Chipertextnumber Uji Coba ke-9

Dari hasil uji coba ke-9 ini dapat dilihat bahwa pesan cipher ini dikompersi dengan cara mengganti setiap numbertext ke bentuk kode binar yang panjangnya berdasarkan probabilitas setiap numbertext. Hasil uji coba ini menunjukkan bahwa pesan cipher yang awalnya berukuran 212 bytes dan membutuhkan alokasi sekitar 1696 bit dapat termampatkan sebesar 54,7, yaitu hanya membutuhkan alokasi sekitar 770 bit atau 96 bytes.

(76)

Gambar 4.40 Hasil Dekompresi Pesan Uji Coba ke-9

Gambar 4.40 menunjukkan pesan yang telah dikompresi dalam bentuk biner dikembalikan kedalam bentuk numbertext sehingga ukuran pesan yang 96 bytes kembali keukuran awal yaitu 212 bytes.

Setelah pesan kembali keukuran semula maka akan dilakukan proses dekripsi, yaitu mengembalikan pesan cipher ke text awalnya (plaintext). Hal ini dapat dilihat pada gambar 4.41 berikut :

Gambar

Tabel 2.1. Riset Terkait
Gambar 4. 20 Hasil Dekompresi Pesan Uji Coba ke-4
Gambar 4.22 Hasil Enkripsi Pesan Uji Coba ke-5
Gambar 4. 24 Hasil Dekompresi Pesan Uji Coba ke-5
+7

Referensi

Dokumen terkait

Database yang digunakan berupa Terjemahan dari Alquran dengan format .text , Melihat teks terjemahan AlQuran dan cara kerja Algoritma Shannon Fano dengan perhitungan

Pada proses enkrpsi pesan, teks yang dapat dibaca (plaintext) ABCDE dienkripsi oleh Algoritma Simetris Chaisar Cipher Enkripsi dengan menggunakan kunci X 0 hasilnya dalam

Pada Aplikasi Secret SMS ini digunakan untuk mengirim pesan yang telah dienkripsi terlebih dahulu menggunakan 2 algoritma yaitu algortima blowfish dan triple DES, kemudian

Pada algoritma Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plaintext (pesan asli) adalah 12 bytes,

Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plaintext (pesan asli) adalah 12 bytes, kemudian setelah

Implementasi algoritma Huffman tersebut bertujuan untuk mengkompresi citra bmp sehingga ukuran file hasil kompresi lebih kecil dibandingkan dengan ukuran citra asli dimana

Ini tidak berarti bahwa algoritma Huffman adalah sebuah metode pengkodean yang optimal, namun dapat diartikan bahwa algoritma ini menghasilkan pendekatan terbaik untuk

yang dibutuhkan untuk melakukan kompresi pada file dokumen input dengan ekstensi. *.doc adalah 5328,2 milisecond , sedangkan untuk file teks input dengan