Kombinasi Algoritma Elgamal Dan Algoritma Kompresi Shannon-Fano

(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

MEDAN

2014


(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

MEDAN

2014


(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,

Prof. Dr. Muhammad Zarlis NIP. 19570701 198601 1 003


(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

Auliana Nasution 107038013


(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

Auliana Nasution 107038013


(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

2. Prof. Dr. Herman Mawengkang 3. Prof. Dr. Muhammad Zarlis 4. Dr. Zakarias Situmorang


(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

SD : SD Negeri 060820 Medan TAMAT : 1990 SLTP : MTs Negeri I Medan TAMAT : 1993 SLTA : MA Negeri I Medan TAMAT : 1996 S1 : STMIK ITMI Medan TAMAT : 2008 : Program Akta Mengajar IV TAMAT : 2010 S2 : Teknik Informatika USU TAMAT : 2013


(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

6. Para dosen di Program Studi S2 Teknik Informatika yang telah membekali penulis dengan ilmu, pengalaman dan kematangan berfikir yang dapat digunakan dalam 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,

Auliana Nasution NIM. 107038013


(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

HALAMAN JUDUL i

PENGESAHAN ii

PERNYATAAN ORISINALITAS iii

PESETUJUAN PUBLIKASI iv

PANITIA PENGUJI v

RIWAYAT HIDUP vi

UCAPAN TERIMA KASIH vii

ABSTRAK ix

ABSTRACK x

DAFTAR ISI xi

DAFTAR TABEL xiii

DAFTAR GAMBAR xiv

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Pembatasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

BAB 2 TINJAUAN PUSTAKA 4

2.1 Kriptografi 4

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

2.3.1 Defenisi Kompresi 13 2.3.2 Penggolongan Algoritma Kompresi 14 2.3.3 Algoritma Kompresi Shannon-Fano 14


(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

GAMBAR 3.1 Flowchart Proses Enkripsi 19 GAMBAR 3.2 Flowchart Proses Kompresi 20 GAMBAR 4.1 Percobaan ke-1 31 GAMBAR 4.2 Percobaan ke-2 32 GAMBAR 4.3 Percobaan ke-3 32 GAMBAR 4.4 Percobaan ke-4 32 GAMBAR 4.5 Percobaan ke-5 32 GAMBAR 4.6 Hasil Enkripsi Pesan Uji Coba ke-1 33 GAMBAR 4.7 Hasil Kompresi Chipertextnumber Uji Coba ke-1 34 GAMBAR 4.8 Hasil Dekompresi Pesan Uji Coba ke-1 34 GAMBAR 4.9 Hasil Dekripsi Pesan Uji Coba ke-1 35 GAMBAR 4.10 Hasil Enkripsi Pesan Uji Coba ke-2 36 GAMBAR 4.11 Hasil Kompresi Chipertextnumber Uji Coba ke-2 36 GAMBAR 4.12 Hasil Dekompresi Pesan Uji Coba ke-2 37 GAMBAR 4.13 Hasil Dekripsi Pesan Uji Coba ke-2 38 GAMBAR 4.14 Hasil Enkripsi Pesan Uji Coba ke-3 38 GAMBAR 4.15 Hasil Kompresi Chipertextnumber Uji Coba ke-3 39 GAMBAR 4.16 Hasil Dekompresi Pesan Uji Coba ke-3 40 GAMBAR 4.17 Hasil Dekripsi Pesan Uji Coba ke-3 40 GAMBAR 4.18 Hasil Enkripsi Pesan Uji Coba ke-4 41 GAMBAR 4.19 Hasil Kompresi Chipertextnumber Uji Coba ke-4 42 GAMBAR 4.20 Hasil Dekompresi Pesan Uji Coba ke-4 42 GAMBAR 4.21 Hasil Dekripsi Pesan Uji Coba ke-4 43 GAMBAR 4.22 Hasil Enkripsi Pesan Uji Coba ke-5 44 GAMBAR 4.23 Hasil Kompresi Chipertextnumber Uji Coba ke-5 44 GAMBAR 4.24 Hasil Dekompresi Pesan Uji Coba ke-5 45 GAMBAR 4.25 Hasil Dekripsi Pesan Uji Coba ke-5 46 GAMBAR 4.26 Hasil Enkripsi Pesan Uji Coba ke-6 46


(16)

GAMBAR 4.27 Hasil Kompresi Chipertextnumber Uji Coba ke-6 47 GAMBAR 4.28 Hasil Dekompresi Pesan Uji Coba ke-6 48 GAMBAR 4.29 Hasil Dekripsi Pesan Uji Coba ke-6 48 GAMBAR 4.30 Hasil Enkripsi Pesan Uji Coba ke-7 49 GAMBAR 4.31 Hasil Kompresi Chipertextnumber Uji Coba ke-7 50 GAMBAR 4.32 Hasil Dekompresi Pesan Uji Coba ke-7 50 GAMBAR 4.33 Hasil Dekripsi Pesan Uji Coba ke-7 51 GAMBAR 4.34 Hasil Enkripsi Pesan Uji Coba ke-8 52 GAMBAR 4.35 Hasil Kompresi Chipertextnumber Uji Coba ke-8 52 GAMBAR 4.36 Hasil Dekompresi Pesan Uji Coba ke-8 53 GAMBAR 4.37 Hasil Dekripsi Pesan Uji Coba ke-8 54 GAMBAR 4.38 Hasil Enkripsi Pesan Uji Coba ke-9 54 GAMBAR 4.39 Hasil Kompresi Chipertextnumber Uji Coba ke-9 55 GAMBAR 4.40 Hasil Dekompresi Pesan Uji Coba ke-9 56 GAMBAR 4.41 Hasil Dekripsi Pesan Uji Coba ke-9 56 GAMBAR 4.42 Hasil Enkripsi Pesan Uji Coba ke-9 57 GAMBAR 4.43 Hasil Kompresi Chipertextnumber Uji Coba ke-10 58 GAMBAR 4.44 Hasil Dekompresi Pesan Uji Coba ke-10 58 GAMBAR 4.45 Hasil Dekripsi Pesan Uji Coba ke-10 59 GAMBAR 4.46 Hasil Enkripsi Pesan Uji Coba ke-11 60 GAMBAR 4.47 Hasil Kompresi Chipertextnumber Uji Coba ke-11 60 GAMBAR 4.48 Hasil Kompresi Pesan yang telah Terkompresi 61 GAMBAR 4.49 Hasil Dekompresi Pesan Uji Coba ke-11 61 GAMBAR 4.50 Hasil Enkripsi Pesan Uji Coba ke-12 63 GAMBAR 4.51 Hasil Kompresi Chipertextnumber Uji Coba ke-12 63 GAMBAR 4.52 Hasil Dekompresi Pesan Uji Coba ke-12 64 GAMBAR 4.53 Hasil Dekripsi Pesan Uji Coba ke-12 65


(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].

Sedangkan Sarisakal, et. al (2003) melakukan penelitian pengiriman e-mail menggunakan Algoritma Enkripsi ElGamal. Menyimpulkan bahwa belum ada serangan yang berhasil pada algoritma ini yang pernah dilaporkan serta pada umumnya panjang pesan cipher dua kali lebih panjang dari plainteksnya dan hal ini akan mengurangi kinerja system tapi keamanannya akan mencapai tingkat tertinggi.


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

Berdasarkan uraian di atas penelitian ini 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 terhadap pesan tersebut. Hasil penelitian ini diharapkan


(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

Penelitian ini bertujuan untuk menentukan elemen primitive α (primitive root) dengan lebih cepat dan mudah serta memperkecil ruang penyimpanan pesan chipper yang dihasilkan dari proses enkripsi algoritma ElGamal.


(22)

1.5 Manfaat Penelitian

Secara spesifik manfaat penelitian ini dapat membantu pengguna melakukan proses pembentukan kunci dengan lebih cepat, memperkecil ukuran pesan, menghemat ruang penyimpanan yang relatif kecil dan pesan teks terjaga kerahasiaannya.


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

Penerima pesan dapat memastikan keaslian pengirimnya. Penyerang tidak dapat berpura-pura sebagai penerima ataupun pengirim pesan.


(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

cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang menjadi dasar pembangkitan kunci.


(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 Output : Bilangan prima

Langkah :

1. Hitung a(p-1)/2 mod p

- Jika a(p-1)/2 1 atau -1(mod p), maka p bukan prima. - Jika a(p-1)/2 1 atau -1 (mod p), maka p bukan prima

2. Output (p prima)

b. PBB - GCD (Greatest Common Divisor)

Digunakan untuk menghitung nilai pembagi persekutuan terbesar dari dua bilangan bulat. Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Pembagi


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

Output : gcd(a,b). Langkah :

1. While b ≠ 0 kerjakan:

- Set r a mod b, a b, b r

2. Output (a)

d. Relatif Prima

Diberikan a, b  ℤ. Jika gcd(a, b) = 1, maka a dikatakan relatif prima dengan b. Bilangan bulat a1, a2 ,..., andikatakan saling relatif primajika gcd(a1, a2,...,an) = 1.

(Stinson, 1995) e. Aritmatika Modulo

Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod

m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Bilangan m

disebut modulus atau modulo, dan hasil aritmetika modulo m terletak di dalam himpunan {0, 1, 2,..., m-1} (Scheiner, 1996).

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

Input : bilangan bulat x, y dan a modulus m, untuk semua b Output : x y mod m.

Langkah :

1. Hitung x y dengan langkah :

- untuk i from 0 to (n + t + 1) kerjakah : wi 0

- untuk i from 0 to t, kerjakan : - c0

- untuk j from 0 to n kerjakan :

- (uv)b = wi+j + xj yi + c, dan set wi+j v, c u, wi+n+1 u

2. Hitung sisa r ketika x y dibagi dengan m, dengan langkah : - untuk j from 0 to (n − t) kerjakan : qj0


(28)

- untuk i from n down to (t + 1) kerjakan :

- jika xi = yt maka set qi−t−1 b − 1; selain itu set qi−t−1 ((xib + xi−1)/yt)

- while (qi−t−1(ytb +yt−1) > xib2 +xi−1b + xi−β), kerjakan: qi−t−1 qi−t−1−1

x x − qi−t−1ybi−t−1

- jika If x < 0 maka set x x - ybi−t−1 dan qi−t−1 qi−t−1− 1.

- r  x, output (q, r). 3. output (r)

f. Kekongruenan

Misalkan a dan b adalah bilangan bulat dan m adalah bilangan bulat > 0, maka a b (mod m) jika m habis membagi a b ditulis (m|a − b). Jika a tidak kongruen dengan b dalam modulus m, maka di tulis a ≡/ b (mod m) (Oppliger, 2005).

Kekongruenan a b (mod m) dapat juga di tuliskan hubungan a = b + km yang dalam hal ini k adalah bilangan bulat. Berdasarkan definisi aritmetika modulo, dapat dituliskan a b mod m

g. Fungsi Euler ()

Jika n  1, (n) adalah bilangan bulat < n yang relatif prima dengan n, dengan ketentuan :

a. Jika p adalah bilangan prima, maka (p) = p– 1 b. Jika gcd(m, n) = 1, maka (mn) = (m) . (n)

c. Jika n = , maka (n) = n x (Menezes, Oorschot and Vanstone, 1996)

h. Ordo Modulo

Jika a Zn*, a disebut ordo dari m mod n apabila a adalah nilai terkecil, sehingga me≡ 1 (mod n)(Menezes, Oorschot and Vanstone, 1996)

i. Exponentiation

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,

dan bilangan bulat x, 1 x < m Output : xemod m


(29)

Langkah :

1. xMont (x, R2 mod m), AR mod m (R mod m dan R2 mod m,dapat diberikan sebagai input)

2. Untuk i from t down to 0 kerjakan : - AMont (A, A)

- jika ei = 1 maka A Mont (A, x)

3. AMont (A, 1) 4. output (A)

j. Invers Modulo

Jika a dan m relatif prima dan m > 1, maka dapat ditemukan invers dari a modulo

m. Invers dari a (mod m), disebut juga invers perkalian, yaitu bilangan bulat a-1. Algoritma Invers Modulo (Menezes, Oorschot and Vanstone, 1996)

Input : bilangan bulat m = (mn−1…m1m0)b dimana gcd(m, b) = 1, R = bn, m1

= − m−1 mod b, dan T = (tβn−1t1t0)b < mR Output : TR−1mod m

Langkah :

1. AT (notasi : A = (aβn−1… a1a0)b

2. For i from 0 to (n − 1) kerjakan : - uiaim’ mod b

- AA + umbi

3. AA/bn

4. jika Am maka AA − m

5. output (A)

k. Elemen Primitif (Primitive root)

Jika m Z, n N dan ordn (m) = (n) maka m disebut akar primitive modulo n.

dengan kata lain, m adalah primitive root jika memiliki eksponen (n) modulo n.

Primitive root mod bilangan prima : jika p adalah bilangan prima dan e N, dimana e  (p −1). Dalam setiap system residu modulo p, terdapat 0 atau (e) yang berbeda untuk m Z, 0 mp1, dengan ordp (m) = e secara khusus terdapat 


(30)

Jika digunakan bilangan prima p yang sama dengan p = 2 . q + 1 dan q adalah bilangan prima, maka dapat digunakan untuk mengecek apakah suatu Zp* merupakan elemen primitif atau tidak. Karena p – 1 = 2 . q, 2 dan q merupakan pembagi prima dari p 1 sehingga harus dicek apakah 2 (mod p)  1 dan q (mod

p)  1. Jika keduanya dipenuhi, maka  adalah elemen primitif.

Algoritma penentuan elemen primitif

Input : bilangan prima p ≥ 5 dan α Zp *

Output : elemen primitif atau bukanelemen primitive

Langkah : 1) Hitung q =

2) Hitung 2 (mod p) dan q (mod p)

3) Jika 2 (mod p) = 1 maka output : bukan elemen primitif

4) Jika q (mod p) = 1 maka output :  bukan elemen primitif

5) output : element primitif

2.2.3 Prinsip Kerja Algoritma ElGamal 2.2.3.1 Proses pembentukan kunci

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.

Untuk mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standard for Information Interchange). Kode ASCII merupakan representasi numerik dari karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255. Kode ASCII berkorespondensi 1-1 dengan karakter pesan. Algoritma membangkitkan Pasangan Kunci : (Menezes, Oorschot and Vanstone, 1996)


(31)

1. Pilih sembarang bilangan prima p besar dan elemen primitif (Primitive Root) grup

Zp* dari bilangan bulat mod p

2. Pilih bilangan bulat acak a, dengan syarat 1 ≤ a p – 2. 3. Hitung = αamod p.

4. Publikasikan nilai p, α dan , serta rahasiakan a.

Hasil algoritma ini adalah kunci publik : triple ( , α, p) dan kunci privat : 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)

Tujuan dari kompresi data adalah untuk merepresentasikan suatu data digital dengan sedikit mungkit bit, tetapi tetap mempertahankan kebutuhan minimum untuk


(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

Algoritma Shannon-Fano ini dikembangkan oleh Claude Shannon dan Robert Fano. Prinsip kerja kompresi teks yaitu karakter yang memiliki frekuensi kemunculan lebih banyak akan membentuk kode bit yang lebih pendek, sedangkan karakter yang memiliki frekuensi kemuculan lebih sedikit akan membentuk kode bit yang lebih panjang.


(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 :

Tabel 2.1. Riset Terkait

Nama Peneliti

(Tahun) Judul Pembahasan

Mustafa Dulgerler dan Sarisakal (2003)

A Secure E-mail Application using the ElGamal Algorithm : MD Message Controller

Membahas keamanan

pengiriman e-mail menggunakan proses enkripsi algoritma

ElGamal

Allam Mousa (2005)

Security and performance of Elgamal encryption

parameter.

Membahas keamanan dengan mengubah parameter yang mengontrol kinerja dari algoritma Elgamal.


(35)

Haraty (2005)

ElGamal Public-Key Cryptosystem in

Multiplicative Groups of Quotient Rings of Polynomial over Finite Fiels

Memodifikasi skema ElGamal dari domain bilangan bulat alami dan memberikan perpanjangan pada kelompok multiplikatif.

Supriadi (2006) Analisis Varian Algoritma Tanda Tangan Digital ElGamal.

Menganalisis perbandingan kecepatan dan beban komputasi dengan ukuran kunci yang berbeda pada varian algoritma ElGamal

Sharma, P, dkk (2012)

Intesified ElGamal Cryptosystem (IEC).

Membuat desain algoritma baru untuk tanda tangan digital

Christina (2009)

Implementasi dan Analisis Perbandingan antara Pengkodean LZ78 dan

Shannon Fano pada Kompresi Data Teks.

Menganalisis perbandingan kompresi Shannon Fano dan Pegkodean LZ78 dalam mengkompresi data teks

Kodituakku, Amarasinghe

(2010)

Comparison of Lossless Data Compression Algorithms for text Data

Menganalisis teknik lossless beberapa algoritma kompresi menggunakan jenis file dan pola uji yang berbeda.

Romi Wiryadinata

(2007)

Data Compression Coding Using Static and Dynamic

Mthod of Shannon-Fano

Algorithm

Membahas tentang teknik kompresi data menggunakan Shannon-Fano dengan

membandingkan teknik dinamik dan static menggunakan data yang sama


(36)

Sentil, S. Lourdusamy, R.

(2011)

A Comparative Study of Text Compression Algorithms

Membandingkan beberapa algoritma kompresi mengunakan teknik kompresi statistic dan teknik kompresi dictionary untuk data text

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

Kontribusi dari penelitian ini memberikan pemahaman pentingnya aspek keamanan dan ukuran pesan yang bersifat rahasia. Hasil dari proses uji coba penentuan akar primitif dapat digunakan untuk mempercepat dalam proses pembentukan kunci algoritma ElGamal, dan pesan enkripsi yang berupa chipertekxnumber dapat dimampatkan ukurannya demi menghemat ruang penyimpanan dan mempercepat proses pengiriman.


(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

Plainteks

Plainteks ASCII

= a� � dan = a.�� �

Cipherteks For i = 1 sampai p

A


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

A

Stop Cipherteks

Cipherteks Terkompresi Inisialisasi Urut Frekuensi PembagianChar


(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, yang dinotasikan dengan ord5 (3) = 4

b. Teorema Euler ()

 (n) adalah banyaknya bilangan bulat < n yang relatif prima dengan n, dengan ketentuan :

1. Jika p adalah bilangan prima, maka  (p) = p – 1 Contoh :  (5) =…?

 (5) = 5-1 = 4

Jumlah bilangan bulat lebih kecil dari 5 dan relatif prima terhadap 5 adalah {1,2,3,4}

2. Jika gcd (m, n) = 1, maka  (mn) =  (m) .  (n) Contoh : (6) = …?

 (6) = (2) * (3) = (2-1) * (3-1) = 2

Jumlah bilangan bulat lebih kecil dari 6 dan relatif prima terhadap 6 adalah {1,5}

3. Jika n = , maka (n) = n x Contoh :  (36) = …?

 (36) = 36 * (1-1/2) * (1-1/3) = 36 * 0,5 * 2/3

= 12

Jumlah bilangan bulat lebih kecil dari 36 dan relatif prima terhadap 36 adalah {1,5,7,11,13,17,19,23,25,29,31,35}

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.

Contoh : Diketahui bilangan prima (p) = 59 dan elemen primitive (a) = 29 maka: Tabel 3.2 Perhitungan Akar Primitiv

g 2 3 4 5 6 7 8

g2 (mod 59) 4 9 16 25 36 49 64

g29 (mod 59) 58 1 1 1 58 1 58

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

apabila ordn (m) = (n) dan jika p adalah bilangan prima dan e N, dimana e (p −1).

Dalam setiap sistem 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. Contoh :

Apakah 6 adalah akar primitif dari modulo 59 ?

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

Tabel 3.3 Perhitungan ordo 6 modulo 59

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

1 6 17 37

2 36 18 45

3 39 19 34

4 57 20 27

5 47 21 44

6 46 22 28

7 40 23 50

8 4 24 5

9 24 25 30


(43)

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

11 38 27 18

12 51 28 49

13 11 29 58

14 7 30 53

15 42 31 23

16 16 32 20

33 2 46 22

34 12 47 14

35 13 48 25

36 19 49 32

37 55 50 15

38 35 51 31

39 33 52 9

40 21 53 54

41 8 54 29

42 48 55 56

43 52 56 41

44 17 57 10

45 43 58 1

Jadi Ord6 (59) = 58 dan

 (59) = 59 – 1 = 58

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

Setelah penentuan bilangan prima p = 227 dan elemen primitif α (primitive root) = 5, maka terbentuklah kunci public (227, 5, 194), langkah selanjutnya adalah melakukan


(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

I Karakter Plainteks mi (ASCII)

1 B 66

2 E 69

3 B 66

4 A 65

5 S 83

6 K 75

7 A 65

8 N 78

9 <spasi> 32

10 S 83

11 A 65

12 Y 89

13 A 65

3. Langkah selanjutnya, menentukan bilangan acak x{0,1,…227}, kemudian

dihitung = gxmod pdan = .�� �

Tabel 3.5 Enkripsi pesan teks

i mi x gxmod p .�� �

1 66 201 123 212

2 69 198 139 219

3 66 167 22 167

4 65 178 43 90

5 83 155 111 104

6 75 220 221 10

7 65 235 17 60


(45)

i mi x gxmod p.�� �

9 32 18 62 38

10 83 87 157 33

11 65 99 162 138

12 89 105 200 39

13 65 125 145 194

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

Tabel 3.6 Frekuensi dan Pengurutan Karakter secara Descending String hasil Shorting

Number Frekuensi

1 19 2 12

3 8

0 7

9 5

4 4

6 4

7 4

5 2

8 2


(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

1 19 Atas 2 12

3 8

Bawah

0 7

9 5

4 4

6 4

7 4

5 2

8 2

Jumlah 67

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

Number Frekuensi Kode

1 19 0

2 12 0

3 8 1

0 7 1

9 5 1

4 4 1

6 4 1

7 4 1

5 2 1

8 2 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

1 19 0 0

2 12 0 1

3 8 1 0

0 7 1 0

9 5 1 1

4 4 1 1

6 4 1 1

7 4 1 1

5 2 1 1

8 2 1 1

Jumlah 67

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

Tabel 3.10 Pemberian Kode pada Fase 3

Number Frekuensi Kode

1 19 0 0

2 12 0 1

3 8 1 0 0

0 7 1 0 1

9 5 1 1 0

4 4 1 1 0

6 4 1 1 1

7 4 1 1 1

5 2 1 1 1

8 2 1 1 1


(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

1 19 0 0

2 12 0 1

3 8 1 0 0

0 7 1 0 1

9 5 1 1 0 0

4 4 1 1 0 1

6 4 1 1 1 0

7 4 1 1 1 0

5 2 1 1 1 1

8 2 1 1 1 1

Jumlah 67

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

Tabel 3.12 Pemberian Kode pada Fase 5

Number Frekuensi Kode

1 19 0 0

2 12 0 1

3 8 1 0 0

0 7 1 0 1

9 5 1 1 0 0

4 4 1 1 0 1

6 4 1 1 1 0 0

7 4 1 1 1 0 1

5 2 1 1 1 1 0

8 2 1 1 1 1 1


(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

2 12 0 1 01

3 8 1 0 0 100

0 7 1 0 1 101

9 5 1 1 0 0 1100

4 4 1 1 0 1 1101

6 4 1 1 1 0 0 11100 7 4 1 1 1 0 1 11101 5 2 1 1 1 1 0 11110 8 2 1 1 1 1 1 11111

Jumlah 67 38

Dari tabel 3.13 diperoleh hasil kompresi Number 1230946758  00011001011100110111100111011111011111

FK (Faktor Kompresi) = Ukuran Bit Input = 67 = 1,76 Ukuran Bit Output 38

RK (Rasio Kompresi) = Ukuran Bit Output = 38 = 0,57 Ukuran Bit Input 67

% Penyusutan = Ukuran Bit Input-Bit Output = 402-47 = 0,43% Ukuran Bit Input 402

3.3.1 Instrumen Penelitian

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

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


(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

Gambar 4.6 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.7 berikut :


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

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.8 dan 4.9 berikut :


(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

yang terdiri dari dua buah karakter dengan pola (aaaaaaaaaa,bbbbbbbbbb) dengan ukuran 532 bytes. Hasil uji coba dapat dilihat pada gambar 4.10 berikut :


(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 :


(1)

semakin kecil frekuensi kemunculan sebuah karakter semakin besar faktor kompresinya. (tabel 4.5)

- Plaintext dengan ukuran yang sama, jika di enkripsi dapat menghasilkan ukuran pesan terenkripsi yang berbeda-beda tetapi menghasilkan ukuran dekripsi yang sama (uji coba ke-4 dan ke-8)

- Seluruh plaintext (abjad, angka dan tanda baca yang ada di keyboard) dapat dienkripsi dan dikompresi. (uji coba ke-9 s/d ke-10).

- Jika file yang sama dikompresi berulang-ulang maka ukuran kompresinya bertambah besar akan tetapi tidak dapat didekompresi dan di dekripsi. (uji coba ke-11)

- Dapat mengenkripsi dan mengkompresi file besar (file surat). (uji coba ke-12) - Semakin besar file terkompresi semakin kecil ruang penyimpanan yang

dibutuhkan

- Hasil dekompresi menunjukkan bahwa setiap pesan yang dilakukan proses dekompresi dapat dikembalikan ke bentuk semula (plainteks) sebelum dilakukan proses enkripsi (ciphertext).

- Hasil dari proses dekripsi menghasilkan plaintext dengan ukuran yang sama. Secara umum algoritma kompresi Shanno-Fano dengan rentang ukuran file uji 212 bytes – 6356 bytes diperoleh rata-rata :

- Perbandingan ukuran file sumber dan file dikompresi 2,191 - Perbandingan ukuran file dikompresi dan file sumber 0,419 - Persentase penyusutan dari sumber file 49,6%

Dan secara keseluruhan algoritma Shannon-Fano menghasilkan alokasi data yang lebih sedikit dari alokasi data yang masuk (dengan asumsi satu data/huruf membutuhkan alokasi 8 bit).

Untuk lebih jelas, hal ini dapat dilihat pada tabel 4.5 berikut :


(2)

Tabel 4.5 Hasil Kompresi Algoritma Shannon-Fano untuk 11 (sebelas) Uji Coba

Uji coba (plaintext)

Ukuran

Faktor Kompresi

Rasio Kompresi

% Penyim-

panan Plaintext Ciphertext

number

Ciphertext number Terkompresi

A 532 4316 1982 2,293 0,460 54,1

aaa; bbb 532 4315 1988 2,171 0,461 53,9 aaa; bbb; ccc 532 4339 1995 2,175 0,460 54,0 aaa; bbb; ccc; dd 532 4139 1994 2,076 0,462 51,8

ababab 532 4324 1989 2,174 0,460 54,0

abcabcabc 532 4318 1991 2,169 0,461 53,9 abcdabcdabcd 532 4328 1991 2,174 0,460 54,0 aaa; bbb; ccc; dd 532 4335 1992 2,176 0,460 54,0 Abjad (karakter) 26 212 96 2.208 0,453 54,7 Angka & Tanda 36 294 133 2,211 0,452 54,8

Surat 901 6356 2800 2,27 0,441 55,9

Rata-rata 2.191 0,419 49,6

Kombinasi yang dapat dan tidak dapat dilakukan

Seluruh pesan teks dapat dilakukan proses enkripsi-kompresi yaitu seluruh pesan teks dapat terjaga kerahasiaannya karena pesan dapat ditampilkan dalam bentuk

chipertextnumber dan dapat mengurangi ruang penyimpanan karena ukurannya lebih kecil setelah dilakukan pemampatan. Proses dekompresi-dekripsi, dapat mengembalikan seluruh pesan teks kebentuk dan ukuran sebelumnya (plaintext). Sedangkan jika proses enkripsi-kompresi telah dilakukan kemudian dilakukan lagi proses kompresi, pesan tidak dapat di dekompresi-dekripsi kembali.


(3)

BAB 5

KESIMPULAN DAN SARAN

5. 1 Kesimpulan

Dari hasil uji coba dan analisis yang telah penulis lakukan, dapat ditarik kesimpulan bahwa :

1. Penentuan Akar Primitif dapat menggunakan algoritma berikut : - Tentukan Bilangan Prima p

- Hitung totient euler ((n))

- Hitung Ordo Modulo e = ordn (m) dimana (mZ, n & eN, GCD (m,n) =1) - Apabila ordn (m) = (n) maka m disebut akar primitif modulo n.

- Apabila p adalah bilangan prima dan perhitungan ge(mod p) pada setiap e  {1,2,3,…,p1} menghasilkan permutasi dari seluruh elemen dalam {1,2,3,…,p1} maka g disebut akar primitif modulo p.

2. Pembangkitan kunci dalam Algoritma ElGamal tidak dapat menggunakan bilangan prima p yang lebih kecil dari 225 dalam proses enkripsinya. Hal ini disebabkan karena perhitungannya menggunakan bilangan bulat sehingga pesan harus dikonversi kedalam bilangan bulat menggunakan kode ASCII (0-225).

3. Kombinasi Enkripsi-Kompresi untuk ukuran plaintext yang sama menghasilkan ukuran pesan terenkripsi dan ukuran hasil kompresi yang berbeda-beda. Semakin tinggi frekuensi kemunculan sebuah karakter semakin kecil faktor kompresinya dan semakin kecil frekuensi kemunculan sebuah karakter semakin besar faktor kompresinya, hal ini juga dipengaruhi oleh pembentukan pola karakter.

4. Algoritma kompresi Shanno-Fano dapat memampatkan pesan chipertext dari algoritma ElGamal yang dalam penelitian ini mempunyai rentang ukuran file 212 bytes – 6399 bytes didapatkan rata – rata rasio kompresi 0,914 dan rata-rata penyusutan dari sumber file 0,086%. Hal ini dipengaruhi oleh pola pembentukan pesan dan frekuensi kemunculan tiap karakter pada pesan.

5. Seluruh pesan teks dapat dilakukan proses enkripsi-kompresi, dapat terjaga kerahasiaannya dan dapat mengurangi ruang penyimpanan. Sedangkan proses


(4)

dekompresi-dekripsi, dapat mengembalikan seluruh pesan teks kebentuk dan ukuran sebelumnya (plaintext). Akan tetapi jika proses enkripsi-kompresi dilakukan secara berulang, pesan tidak dapat di dekompresi-dekripsi kembali.

5.2 Saran

Untuk penelitian selanjutnya diharapkan dapat mengkaji lebih dalam lagi peggunaan rumus matematika untuk pembangkitan kunci algoritma asimetri yang dapat diimplementasikan dalam komputer. Selain itu, untuk mendapatkan hasil pemampatan yang lebih baik sebaiknya melakukan percobaan dengan menggunakan algoritma kompresi lain.


(5)

DAFTAR PUSTAKA

Bishop, D. 2003. Introduction to Cryptography with Java Applets. Jones and Bartlett. Massachusetts.

Buchmann, J. A., 2000, Introduction to Cryptography, Springer-Verlag New York, Inc., USA.

Dulgerler, M. & Sarisakal, M.N 2003. A Secure E-Mail Application using the ElGamal Algorithm : MD Message Controller. Journal of Electrical & Electronics Engineering. Istanbul University. Volume 3. Nomor 1. pp 801-806. El-Kassari, A. N. & Haraty, R. A. &. 2005. ElGamal Public-Key Cryptosystem in

Multiplicative Groups of Quotient Rings of Polynomials over Finite Fields.

ComSIS Volume 2. Nomor 1. pp 63-77.

Hankerson, D., Menezes, A. & Vanstone, S. 2004. Guide To Elliptic Curve Cryptography. Spring Verlag New York Inc.

Kashyap,S. K., Sharma,B. K., and Banerjee. A. 2006. A Cryptosystem Based on DLP.

International Journal of Network Security, Vol.3, No.1, PP.95-100, July 2006

Kodituwakku, S. R. & Amarasinghe. U. S. 2010. Comparison of Lossless Data Compression Algorithms for Text Data. Journal of Computer Science and Engineering. Indian. Volume 1 Nomor 4. pp 416-425.

Menezes, A. J., Oorsschot, P.C & Vanstone, S.A. 1996. Handbook of Applied Cryptography. CRC Press. Inc. USA.

Moldovyan, N. & Moldovyan, A. 2007. Innovative Cryptography Second Edition. Charles River Media. Boston.

Mollin, R.A. 2007. An Introduction to Crypthography Second Edition. Chapman & Hall/CRC.

Mousa, A. 2005. Security and Performance of ElGamal Encryption Parameter.

Journal of Applied Sciences 5 (5).883-886.

Oppliger, R. 2005. Contemporary Cryptography. Artech House. Inc. Boston London. Pu, M. I. 2006. Fundamental Data Compression. London : Butterworth-Heinemann. Rhee, M.Y. 2003. Cryptography Principles, Algorithms and Protocol. Jhon Wiley and

Sons Inc.


(6)

Saputro, N.C, Suwarno. S. & Santoso, R.G. 2009. Implementasi dan Analisis Perbandingan antara Pengkodean LZ78 dan Shannon-Fano pada Kompresi Data Teks. Jurnal Informatika. Volume 5. Nomor 2. pp 36-45.

Supriadi. 2006. Analisis Varian Algoritma Tanda Tangan Digital ElGamal.

Edukasi@elektro. Volume 2. Nomor 2. pp 87-94.

Schneier, B. 1996, Applied Cryptography, Second Edition : Protocol, Algorithms and Source Code in C. John Wiley and Sons Inc.

Sentil, S. Lourdusamy, R. 2011. A Comparative Study of Text Compression Algorithms. International Journal of Wisdom Based Computing. Volume 1 (3). Pp 68-76.

Sharma, P., Gupta, A. K., Sharma, S. 2012. Intesified ElGamal Cryptosystem (IEC).

International Journal of Advances in Engineering & Technology. Volume 2. Issue 1. Pp 543-551.

Stalling, W. 2005. Cryptography and Network Security Principles and Practices. Fifth Edition. Prentice Hall.

Stinson, R. D. 1995. Cryptography Theory and Practice. CRC Press. Inc. Boca Raton London.

Wiryadinata, R. 2007. Data Compression Coding Using Static and Dynamic Method of Shannon-Fano Algorithm. Media Informatika. Volume 5. Nomor 2. pp 129-139.