• Tidak ada hasil yang ditemukan

Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma Kompresi Data Dengan Algoritma Elias Gamma Code

N/A
N/A
Protected

Academic year: 2016

Membagikan "Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma Kompresi Data Dengan Algoritma Elias Gamma Code"

Copied!
121
0
0

Teks penuh

(1)

PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL

DAN ALGORITMA KOMPRESI DATA DENGAN

ALGORITMA

ELIAS GAMMA CODE

SKRIPSI

WIWIN AGUSTINI LUBIS

131421061

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA

ELIAS GAMMA CODE

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

Oleh :

WIWIN AGUSTINI LUBIS 131421061

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

(3)

PERSETUJUAN

Judul :PENYANDIAN DATA TEKS DENGAN ALGORITMA

ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA ELIAS GAMMA CODE.

Kategori : SKRIPSI

Nama : WIWIN AGUSTINI LUBIS

Nomor Induk Mahasiswa : 131421061

Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Agustus 2015 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal, S.Si, M.Comp. Sc Dr. Poltak Sihombing, M.Kom

NIP.- NIP. 19620317 199103 1 001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

PENYANDIAN DATA TEKS DENGAN ALGORITMA ELGAMAL DAN ALGORITMA KOMPRESI DATA DENGAN ALGORITMA

ELIAS GAMMA CODE

SKRIPSI

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

Medan,

(5)

PENGHARGAAN

Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Bapak Prof. Drs. Subhilhar, M.A., Ph.D selaku Pejabat Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai Dosen Pembimbing I yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

(6)

6. Ibu Dian Rachmawati, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

7. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

8. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan mendukung serta kakak dan adik tersayang Dona, Nova, Nanda, Riki.

9. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2013, Fera, Tiany, Nurul, Melsa, Sabrina, Ade, Rio, Ifar, Ryan, Adly, Satrio, Tika, Lely, Zumik, Yusi, Ridha, Mhd.Iqbal, dan virsw2 Dan adik-adik junior yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

10. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, Agustus 2015 Penulis,

(7)

ABSTRAK

Dalam komunikasi data, aspek keamanan, kerahasiaan dan efisiensi penyimpanan data sangat diperlukan. Untuk menjaga keamanan dan kerahasiaan data tersebut salah satu teknik yang digunakan adalah ElGamal. Kekuatan algoritma ini terletak pada sulitnya menghitung logaritma diskrit pada grup bilangan bulat prima yang di dalamnya dilakukan operasi perkalian. Algoritma ElGamal termasuk Algoritma Kunci Asimetris. Disamping usaha pengamanan, sekarang ini orang juga berusaha melakukan proses pengecilan ukuran suatu data (kompresi suatu data). Elias Gamma Code merupakan salah satu algoritma kompresi yang menggunakan tabel Gamma Code. Dalam penelitian ini, penulis menggabungan antara Algoritma ElGamal untuk melakukan penyandian data dan Algoritma Elias Gamma Code untuk kompresi data. Plainteks pertama kali dienkripsikan menggunakan algoritma ElGamal, kemudian hasil enkripsi dari Elgamal tersebut di kompresi dengan menggunakan Elias Gamma Code. Pengujian bilangan prima menggunakan Metode Fermat. Implementasi sistem menggunakan bahasa pemrograman Java dengan software Netbeans versi 7.0.1. Hasil penelitian menunjukkan bahwa metode ElGamal dapat menjaga keamanan, dan kerahasiaan data. Metode Elias Gamma Code cukup efisien dalam proses penyimpanan data dengan rasio kompresi rata-rata sebesar 73,04%.

(8)

THE TEXT DATA ENCRYPTION USING ELGAMAL ALGORITHM AND COMPRESSION DATA ALGORITHM BY ELIAS GAMMA CODE ALGORTHM

ABSTRACT

In data communications, aspects of security, confidentiality and efficiency of data storage are indispensable. Maintain the security and confidentiality of data is one of the techniques used is the ElGamal. This algorithm strength lies in the difficulty of calculating discrete logarithms in prime integers group which the multiplication operation performed. ElGamal algorithms including Asymmetric Key Algorithm. Besides the security business, today people are also trying to make the process of downsizing the size of the data (the data compression). Elias Gamma Code is a compression algorithm that uses the Gamma table Code. In this study, the authors to combine between ElGamal algorithm to perform data encryption and Elias Gamma Code algorithm for data compression. Plaintext was first encrypted using ElGamal algorithm, then the result of the ElGamal encryption is compressed by using Elias Gamma Code. The tests were using the method of Fermat primes. Implementation of the system was using the Java programming language with Netbeans software version 7.0.1. The results showed that ElGamal method can maintain the security and confidentiality of data. Elias Gamma Code method is quite efficient in the process of data storage with an average ratio of compression 73,04%.

(9)

DAFTAR ISI

1.3. Ruang Lingkup Penelitian 3

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 4

1.6. Penelitian Sebelumnya 4

1.7. Metodologi Penelitian 5

1.8. Sistematika Penulisan 6

BAB 2. LANDASAN TEORI 8

2.1. Kriptografi 8

2.1.1. Defenisi Kriptografi 8

2.1.2. Sejarah Kriptografi 9

2.1.3. Tujuan Kriptografi 10

2.1.4. Terminologi dan Konsep Dasar Kriptografi 11

2.1.5. Jenis Kriptografi 13

2.2. Algoritma ElGamal 16

2.2.1. Sejarah Algoritma ElGamal 16

2.3. Landasan Matematika Algoritma ElGamal 17

2.3.1. Modulo Exponensial 17

2.3.2. Algoritma Euclidean 18

2.3.3. Inversi Modulo 19

2.3.4. Bilangan Prima 20

2.3.5. Bilangan Relatif Prima 20

2.3.6. Elemen Primitif 20

β.γ.7. Fermat’s Little Theorem 21

2.4. Prinsip Kerja Algoritma ElGamal 22

(10)

2.4.2. Proses Enkripsi 23

2.4.3. Proses Dekripsi 24

2.5. Defenisi Kompresi 24

2.5.1. Penggolongan Algoritma Kompresi 25

2.5.2. Algoritma Elias Gamma Code 25

2.5.2.1 Konsep Kompresi Data 27 2.5.3. Pengukuran Kinerja Kompresi Data 30

BAB 3. ANALISIS DAN PERANCANGAN SISTEM 31

3.1. Analisis 31

3.1.1. Analisis Masalah 31

3.1.2. Analisis Kebutuhan 32

3.1.2.1. Kebutuhan Fungsional 33 3.1.2.2. Kebutuhan Non Fungsional 33

3.2. Pemodelan Sistem 34

3.2.1. Use-Case Diagram 34

3.2.2. Activity Diagram 35

3.2.2.1. Activity Diagram Proses Pembangkit Kunci 35 3.2.2.2. Activity Diagram Proses Enkripsi ElGamal 36 3.2.2.3. Activity Diagram Proses Kompresi Elias Gamma Code 36 3.2.2.4. Activity Diagram Proses Dekompresi Elias Gamma Code 37 3.2.2.5. Activity Diagram Proses Dekripsi ElGamal 38

3.2.2.6. Sequence Diagram 38

3.3. Perancangan Sistem 39

3.3.1. Pembuatan Algoritma Program 39

3.3.2. Alur Proses Sistem Secara Umum 40

3.3.3. Alur Proses Pembangkit Kunci 41

3.3.4. Alur Proses Enkripsi pada ElGamal 42 3.3.5. Alur Proses Dekripsi pada ElGamal 44 3.3.6. Alur Proses Kompresi Elias Gamma Code 46 3.4. Perancangan Antarmuka (Interface) 49

3.4.1. Rancangan Halaman Utama 49

3.4.2. Rancangan HalamanKey Generator 50

3.4.3. Rancangan Halaman Enkripsi 51

3.4.4. Rancangan Halaman Dekripsi 53

3.4.5. Rancangan Halaman Kompresi 54

3.4.6. Rancangan Halaman Dekompresi 55

BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM 56

4.1. Implementasi Sistem 56

4.1.1. Form Halaman Utama 57

4.1.2. Form Key Generator 57

(11)

4.1.4. Form Dekripsi 59

4.1.5. Form Kompresi 59

4.1.6. Form Dekompresi 60

4.2. Pengujian Sistem 61

4.2.1. Pengujian Proses Key Generator 61

4.2.2. Pengujian Proses Enkripsi 63

4.2.3. Pengujian Proses Kompresi 65

4.2.4. Pengujian Proses Dekompresi 66

4.2.5. Pengujian Proses Dekripsi 68

4.2.6. Hasil Pengujian 70

4.2.6.1 Hasil Pengujian String Homogen dan Heterogen 76

Kompleksitas Waktu Algoritma PROMETHEE 86

BAB 5. KESIMPULAN DAN SARAN 77

5.1. Kesimpulan 77

5.2. Saran 78

(12)

DAFTAR TABEL

halaman Tabel 2.1. Penyelesaian contoh soal Inversi Modulo 19 Tabel 2.2. Perhitungan α2 mod β579 dan α1289 mod 2579 21

Tabel 2.3. Tabel Elias Gamma Code 26

Tabel 2.4. String yang Belum Dikompresi 28

Tabel 2.5. String yang Sudah Dikompresi Dengan Elias Gamma Code 29 Tabel 4.1. Hasil Uji Coba untuk 9 (sembilan) percobaan 75

(13)

DAFTAR GAMBAR

halaman

Gambar 2.1. Urutan proses kriptografi 9

Gambar 2.2. Mesin enigma yang digunakan tentara Jerman 10 Gambar 2.3. Perbandingan plainteks dan cipherteks 12 Gambar 2.4. Hubungan antara kriptologi, kriptografi dan kriptografi 13

Gambar 2.5. Skema Algoritma Simetri 14

Gambar 2.6 Skema Algoritma Asimetri 15

Gambar 3.1 Diagram Ishikawa Masalah Penelitian 32

Gambar 3.2 Use-Case Diagram Pada Sistem 34

Gambar 3.3. Activity Diagram Proses Pembangkit Kunci 35 Gambar 3.4. Activity Diagram Proses Enkripsi Pesan 36 Gambar 3.5 Activity Diagram Proses Kompresi Elias Gamma Code 36 Gambar 3.6. Activity Diagram Proses Dekompresi Elias Gamma Code 37 Gambar 3.7. Activity Diagram Proses Dekripsi Pesan 38

Gambar 3.8. Sequence diagram sistem 39

Gambar 3.9. Flowchart gambaran umum sistem 40

Gambar 3.10. Flowchart Alur proses pembangkitan kunci 42 Gambar 3.11. Flowchart Alur proses enkripsi ElGamal 44 Gambar 3.12. Flowchart Alur proses dekripsi ElGamal 46 Gambar 3.13. Flowchart Alur proses kompresi Elias Gamma Code 48

Gambar 3.14. Rancangan Halaman Utama 50

Gambar 3.15 Rancangan Key Generator 51

Gambar 3.16 Rancangan Halaman Enrkipsi 52

Gambar 3.17 Rancangan Halaman Dekripsi 53

Gambar 3.18 Rancangan Halaman Kompresi 54

Gambar 3.19 Rancangan Halaman Dekompresi 55

Gambar 4.1. Halaman utama 57

Gambar 4.7. Hasil nilai kunci publik dan kunci privat 61 Gambar 4.8. Save File Dialog untuk menyimpan kunci publik 62 Gambar 4.9. Save File Dialog untuk menyimpan kunci privat 62

Gambar 4.10. Form nilai kunci publik 63

Gambar 4.11. Open File Dialog untuk input file teks 63

Gambar 4.12 Form Hasil Enkripsi 64

(14)

Gambar 4.14 Open File Dialog input file teks 65 Gambar 4.15 Save File Dialog hasil kompresi 66

Gambar 4.16 Message Dialog hasil kompresi 66

Gambar 4.17 Open File Dialog input file teks 67 Gambar 4.18 Save File Dialog hasil dekompresi 67 Gambar 4.19 Message Dialog hasil dekompresi 68

Gambar 4.20 Form nilai kunci privat 68

Gambar 4.21 Open File Dialog untuk input file teks 69

Gambar 4.22 Form hasil dekripsi 69

Gambar 4.23 Save File Dialog hasil dekripsi 70

Gambar 4.24 Hasil Uji Coba ke-1 70

Gambar 4.25 Hasil Uji Coba ke-2 71

Gambar 4.26 Hasil Uji Coba ke-3 71

Gambar 4.27 Hasil Uji Coba ke-4 72

Gambar 4.28 Hasil Uji Coba ke-5 72

Gambar 4.29 Hasil Uji Coba ke-6 73

Gambar 4.30 Hasil Uji Coba ke-7 73

Gambar 4.31 Hasil Uji Coba ke-8 74

Gambar 4.32 Hasil Uji Coba ke-9 74

(15)

ABSTRAK

Dalam komunikasi data, aspek keamanan, kerahasiaan dan efisiensi penyimpanan data sangat diperlukan. Untuk menjaga keamanan dan kerahasiaan data tersebut salah satu teknik yang digunakan adalah ElGamal. Kekuatan algoritma ini terletak pada sulitnya menghitung logaritma diskrit pada grup bilangan bulat prima yang di dalamnya dilakukan operasi perkalian. Algoritma ElGamal termasuk Algoritma Kunci Asimetris. Disamping usaha pengamanan, sekarang ini orang juga berusaha melakukan proses pengecilan ukuran suatu data (kompresi suatu data). Elias Gamma Code merupakan salah satu algoritma kompresi yang menggunakan tabel Gamma Code. Dalam penelitian ini, penulis menggabungan antara Algoritma ElGamal untuk melakukan penyandian data dan Algoritma Elias Gamma Code untuk kompresi data. Plainteks pertama kali dienkripsikan menggunakan algoritma ElGamal, kemudian hasil enkripsi dari Elgamal tersebut di kompresi dengan menggunakan Elias Gamma Code. Pengujian bilangan prima menggunakan Metode Fermat. Implementasi sistem menggunakan bahasa pemrograman Java dengan software Netbeans versi 7.0.1. Hasil penelitian menunjukkan bahwa metode ElGamal dapat menjaga keamanan, dan kerahasiaan data. Metode Elias Gamma Code cukup efisien dalam proses penyimpanan data dengan rasio kompresi rata-rata sebesar 73,04%.

(16)

THE TEXT DATA ENCRYPTION USING ELGAMAL ALGORITHM AND COMPRESSION DATA ALGORITHM BY ELIAS GAMMA CODE ALGORTHM

ABSTRACT

In data communications, aspects of security, confidentiality and efficiency of data storage are indispensable. Maintain the security and confidentiality of data is one of the techniques used is the ElGamal. This algorithm strength lies in the difficulty of calculating discrete logarithms in prime integers group which the multiplication operation performed. ElGamal algorithms including Asymmetric Key Algorithm. Besides the security business, today people are also trying to make the process of downsizing the size of the data (the data compression). Elias Gamma Code is a compression algorithm that uses the Gamma table Code. In this study, the authors to combine between ElGamal algorithm to perform data encryption and Elias Gamma Code algorithm for data compression. Plaintext was first encrypted using ElGamal algorithm, then the result of the ElGamal encryption is compressed by using Elias Gamma Code. The tests were using the method of Fermat primes. Implementation of the system was using the Java programming language with Netbeans software version 7.0.1. The results showed that ElGamal method can maintain the security and confidentiality of data. Elias Gamma Code method is quite efficient in the process of data storage with an average ratio of compression 73,04%.

(17)

BAB 1

PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang masalah yang dibahas dalam skripsi

ini, rumusan masalah, ruang lingkup penelitian, tujuan penelitian, manfaat penelitian,

penelitian sebelumnya, metode penelitian, dan sistematika penulisan skripsi.

1.1Latar Belakang

Teknologi informasi dan komunikasi telah berkembang pesat, memberikan pengaruh

yang besar bagi kehidupan manusia. Perkembangan teknologi jaringan dan internet

memungkinkan setiap orang untuk saling bertukar data, informasi, atau pesan kepada

orang lain tanpa batasan jarak dan waktu.

Keamanan dan kerahasiaan merupakan aspek penting yang dibutuhkan dalam

proses pertukaran pesan melalui jaringan internet, karena turut berkembang pula

kejahatan teknologi dengan berbagai teknik interupsi, penyadapan, maupun modifikasi.

Tanpa adanya jaminan keamanan, orang lain dapat dengan mudah mendapatkan pesan

atau informasi yang dikirimkan melalui jaringan internet. Berbagai macam teknik

keamanan telah dikembangkan untuk melindungi dan menjaga kerahasiaan pesan agar

terhindar dari orang yang tidak berhak, salah satunya yaitu teknik kriptografi (Rahmat, B.

2010).

Kriptografi adalah suatu ilmu dan seni untuk menjaga kerahasiaan pesan dengan

cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti maknanya. Secara

(18)

Sedangkan Algoritma Asimetris terdiri atas dua buah kunci yaitu kunci publik untuk

melakukan enkripsi sedangkan kunci privat untuk melakukan dekripsi (Kurniawan, Y.

2004).

Disamping usaha pengamanan, sekarang ini orang juga berusaha melakukan

proses pengecilan ukuran suatu data (kompresi suatu data). Tujuannya adalah untuk

mempercepat, menghemat biaya pengiriman data, dan dapat mengurangi ukuran data agar

dapat disimpan pada media penyimpanan yang memiliki ukuran relatif kecil (Andri, Y.

2009).

Banyaknya algoritma yang digunakan untuk melakukan penyandian data agar

data tersebut aman. Maka disini penulis menggunakan algoritma ElGamal. Kekuatan

algoritma ini terletak pada sulitnya menghitung logaritma diskrit pada grup bilangan

bulat prima yang di dalamnya dilakukan operasi perkalian (Widyartono, A. 2011).

Disebut logaritma diskrit karena nilainya berhingga dan bergantung pada bilangan prima

yang digunakan. Karena bilangan prima yang digunakan adalah bilangan prima yang

besar, maka sangat sulit bahkan tidak mungkin menurunkan kunci privat dari kunci

publik yang diketahui walaupun serangan dilakukan dengan menggunakan sumberdaya

komputer yang sangat besar.

Selanjutnya dalam hal kompresi juga memiliki berbagai macam algoritma yang

digunakan, penulis menggunakan Algoritma Elias Gamma Code. Penulis ingin

melakukan penggabungan antara algoritma kriptografi untuk penyandian data dengan

algoritma kompresi. Dimana plainteks pertama kali dienkripsikan menggunakan

algoritma ElGamal. Dari proses enkripsi ini akan dihasilkan cipherteks. Dan cipherteks

inilah yang nantinya akan digunakan pada proses kompresi. Proses kompresi dilakukan

terhadap berkas yang telah dienkripsi yang bertujuan agar berkas tersebut ukurannya

(19)

1.2 Rumusan Masalah

Melihat dari latar belakang yang sudah dipaparkan di atas maka rumusan masalahnya

adalah bagaimana hasil dari penggabungan antara Algoritma Kriptografi untuk keamanan

data dan Algoritma Elias Gamma Code untuk kompresi data.

1.3Ruang Lingkup Penelitian

Dari uraian perumusan masalah di atas, agar tidak menyimpang dari tujuan yang

diharapkan maka dibuat beberapa pembatasan masalah antara lain :

1. Algoritma kriptografi yang digunakan yaitu Algoritma ElGamal.

2. Metode yang dipakai untuk memperkecil ukuran file menggunakan prinsip lossless

dengan algoritma Elias Gamma Code yang bekerja berdasarkan teknik pengkodean

bilangan bulat menjadi bentuk biner yang lebih sederhana.

3. Membahas proses penyandian pesan yang meliputi : proses pembentukan kunci,

proses enkripsi dan proses dekripsi serta implementasinya dalam sebuah program

sederhana.

4. Proses penyandian hanya dilakukan pada file teks dengan ekstensi (*.txt).

5. Bahasa yang digunakan adalah bahasa pemrograman Java.

1.4Tujuan Penelitian

Tujuan dari penyusunan tugas akhir ini adalah membantu pengguna dalam menyandikan

data teks agar tidak diketahui oleh orang yang tidak memiliki hak untuk data tersebut

dengan menggunakan Algoritma ElGamal dan mengkompresikan data tersebut agar dapat

disimpan dimedia penyimpanan yang berkapasitas rendah dengan menggunakan

(20)

1.5Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah :

1. Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi

pesan dengan menggunakan algoritma ElGamal.

2. Memberikan keamanan data bagi para pengguna.

3. Memudahkan para pengguna dalam menyimpan data pada media penyimpanan

yang relatif berkapasitas rendah.

1.6Penelitian Sebelumnya

Penelitian yang dilakukan oleh (Putra, E. 2013) membahas tentang bagaimana

menyederhanakan perhitungan pada kriptografi kurva eliptik dan berusaha

mempersingkat waktu proses tanpa mengurangi tingkat keamanan dengan judul

Implementasi Kriptografi Kurva Eliptik Dengan Algoritma Elgamal Dan Metode

Pembangkitan Bilangan Prima Rabin-Miller Untuk Pengamanan File Teks. Dimana

kesimpulan penelitiannya antara lain adalah sebagai berikut: Kriptografi kurva eliptik

dengan algoritma ElGamal dan metode pembangkit bilangan prima Rabin Miller dapat

diimplementasikan dengan baik dan dalam prosesnya berhasil disajikan secara sederhana

sehingga dapat membantu pemahaman mengenai kriptografi kurva eliptik, Proses

enkripsi pada kriptografi kurva eliptik dengan algoritma ElGamal dan metode

pembangkit bilangan prima Rabin Miller dapat diproses dengan baik, dan Dengan adanya

pembatasan nilai a dan b menjadi 1 serta jumlah digit pada bilangan prima hasil

bangkitan dari pembangkit bilangan prima Rabin-Miller sebanyak 2 digit, proses

pembangkitan kunci, enkripsi dan dekripsi dapat dilakukan dengan cepat.

Penelitian yang dilakukan oleh (Erdiansyah, U. 2014) membahas tentang

bagaimana Aplikasi yang dirancang dalam penelitian telah mampu melakukan proses

(21)

dirancang dalam penelitian ini telah mampu melakukan proses dekompresi file teks hasil

kompresi menjadi file teks semula sebelum dikompresi.

1.7Metode Penelitian

Metodologi penelitian adalah langkah-langkah sistematik yang ini digunakan untuk

mengerjakan atau menyelesaikan suatu masalah. Metodologi penelitian digunakan

sebagai pedoman dalam melaksanakan penelitian agar hasil yang dicapai sesuai dengan

yang diinginkan. Metodologi penelitian yang digunakan dalam penulisan skripsi ini yaitu,

sebagai berikut:

1. Kepustakaan

a. Library Research, yaitu membaca dan mempelajari buku-buku yang

berhubungan dengan Algoritma Kriptografi ElGamal, dan Algoritma

Kompresi Elias Gamma Code.

b. Melakukan pencarian dokumen-dokumen elektronik (e-book/e-journal)

yang berkaitan dengan pembahasan Algoritma Kriptografi ElGamal dan

Algoritma Elias Gamma Code.

2. Analisa dan Perancangan Sistem

Berdasarkan rumusan dan batasan masalah, kebutuhan perancangan dianalisis

disertai pembuatan flowchart dan design interface.

3. Implementasi Sistem

Mengimplementasikan sistem sesuai hasil analisis dan perancangan ke dalam

program komputer.

4. Pengujian Sistem

Pada tahap ini dilakukan pengujian sistem, apakah implementasi telah sesuai

(22)

5. Dokumentasi

Metode ini dilaksanakan dengan membuat dokumentasi dalam bentuk laporan

tugas akhir.

1.8 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut :

BAB 1. PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang masalah yang dibahas dalam skripsi

ini, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, penelitian

sebelumnya, metode penelitian, dan sistematika penulisan skripsi.

BAB 2. LANDASAN TEORI

Bab ini merupakan tinjauan teoritis yang berkaitan dengan algoritma kriptografi ElGamal

dan algoritma kompresi Elias Gamma Code.

BAB 3. ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini berisi penjelasan tentang analisis masalah yang dibangun dalam sistem dan

menganalisis tentang hal – hal yang dibutuhkan dalam membangun sistem ini, kemudian

dilanjutkan dengan tahapan perancangan sistem yang berupa perancangan interface

sistem.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini berisi tentang implementasi sistem yang berdasarkan tahapan perancangan

(23)

pengujian sistem untuk menguji apakah sistem sudah berjalan sesuai dengan

perancangan.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini merupakan bab penutup yang menguraikan mengenai kesimpulan yang penulis

ambil dari pembahasan pada bab-bab sebelumnya dan saran sebagai masukan terhadap

permasalahan yang muncul yang diharapkan dapat bermanfaat bagi pemecahan masalah

(24)

BAB 2

LANDASAN TEORI

Bab ini akan membahas tinjauan teoritis yang berkaitan dengan algoritma kriptografi

ElGamal dan algoritma kompresi Elias Gamma Code.

2.1 Kriptografi

Kriptografi mempunyai peranan penting dalam dunia komputer. Hal ini disebabkan

karena banyaknya informasi rahasia yang disimpan dan dikirim melalui media-media

komputer. Informasi- informasi ini biasanya berisikan dokumen-dokumen penting dan

data keuangan dari suatu instansi yang tidak ingin dibaca oleh orang yang tidak berhak

atas informasi tersebut. Oleh karena itu ilmu kriptografi setiap saat selalu dikembangkan

oleh orang untuk dapat menjaga fasilitas – fasilitas tersebut.

2.1.1 Defenisi Kriptografi

Menurut Rinaldi Munir dalam skripsi Yuli Andri, 2009 : Kriptografi

(cryptography) berasal dari Bahasa Yunani: “cryptós” artinya “secret” (rahasia),

sedangkan “gráphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia).

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak

menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang

tidak memiliki kunci dekripsi (Kromodimoeljo, 2009).

Secara umum, kriptografi merupakan teknik pengamanan informasi yang dilakukan

dengan cara mengolah informasi awal (plainteks) dengan suatu kunci tertentu

(25)

baru (cipherteks) yang tidak dapat dibaca secara langsung. Cipherteks tersebut dapat

dikembalikan menjadi informasi awal (plainteks) melalui proses dekripsi. Urutan proses

kriptografi secara umum dapat dilihat pada Gambar 2.1.

Gambar 2.1. Urutan proses kriptografi (Widyartono, A. 2011).

2.1.2 Sejarah Kriptografi

Sebagian besar sejarah kriptografi merupakan bagian dari kriptografi klasik, yaitu metode

kriptografi yang menggunakan kertas dan pensil atau menggunakan alat bantu mekanik

yang sederhana. Kriptografi klasik secara umum dikelompokkan menjadi dua kategori,

yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution

cipher). Algoritma transposisi adalah algoritma yang mengubah susunan-susunan huruf

di dalam pesan, sedangkan algoritma substitusi yaitu mengganti setiap huruf atau

kelompok huruf dengan sebuah huruf atau kelompok huruf yang lain.

Algoritma substitusi paling awal dan paling sederhana adalah Caesar Cipher,

yang digunakan oleh raja Yunani kuno, Julius Caesar. Disaat Julius Caesar ingin

mengirimkan sebuah pesan rahasia kepada seorang jenderal di medan perang. Pesan

tersebut akan dikirimkan melalui seorang kurir. Karena tingkat kerahasiaan pesan yang

tinggi, maka Julius Caesar tidak mau mengambil resiko jika pesan tersebut sampai ke

tangan musuh. Maka Caesar mensubstitusi pesan tersebut dengan cara mengganti

huruf-huruf alfabet a menjadi d, b menjadi e, c menjadi f dan seterusnya. Sebelumnya kunci

dari pesan tersebut telah diberitahu oleh Julius Caesar kepada jenderal yang akan

menerima pesan tersebut. Dengan demikian, walaupun pesan tersebut jatuh ke pihak

musuh, maka musuh tersebut tidak akan dapat membaca pesan tersebut.

Enkripsi Dekripsi

(26)

Pada abad ke-20, kriptografi lebih banyak digunakan oleh kalangan militer. Pada

perang dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan

dengan Enigma. Mesin ini menggunakan beberapa buah rotor (roda berputar), dan

melakukan proses enkripsi yang sangat rumit. Jerman percaya pesan akan dikirim melalui

enigma tidak akan terpecahkan kode enkripsinya.

Tetapi anggapan Jerman tersebut salah, setelah mempelajari mesin enigma

bertahun-tahun, sekutu berhasil memecahkan kode-kode tersebut. Setelah Jerman

mengetahui kode-kode mereka telah terpecahkan, kemudian enigma mengalami beberapa

kali perubahan. Mesin Enigma dapat dilihat pada Gambar 2.2.

Gambar 2.2 Mesin enigma yang digunakan tentara Jerman ( Halim, A. 2013).

Perkembangan peralatan komputer digital memicu terbentuknya kriptografi

modern. Dengan komputer digital, akan sangat mungkin untuk menghasilkan cipher yang

lebih kompleks dan rumit. Kriptografi klasik pada umumnya dienkripsi karakter per

karakter (menggunakan alfabet tradisional), sedangkan kriptografi modern beroperasi

pada string biner. Kriptografi modern tidak hanya berkaitan dengan teknik menjaga

(27)

2.1.3. Tujuan Kriptografi

Kriptografi bertujuan untuk memberikan layanan keamanan (Kurniawan, Y. 2004)

sebagai berikut:

1. Kerahasiaan (Confidentiality)

Layanan yang ditujukan untuk menjaga pesan tidak dapat dibaca oleh pihak-pihak

yang tidak berhak.

2. Keutuhan Data (Integrity)

Penerima harus dapat memeriksa apakah pesan telah dimodifikasi ditengah jalan

atau tidak. Seorang penyusup seharusnya tidak dapat memasukkan tambahan ke

dalam pesan, mengurangi atau mengubah pesan selama data berada diperjalanan.

3. Autentikasi (Message Authentication)

Penerima pesan dapat memastikan keaslian pengirimnya. Penyerang tidak dapat

berpura- pura sebagai orang lain.

4. Menolak Penyangkalan (Nonrepudiation)

Pengirim seharusnya tidak dapat mengelak bahwa dialah pengirim pesan yang

sesungguhnya. Tanpa kriptografi, seseorang dapat mengelak bahwa dialah pengirim

email yang sesungguhnya.

2.1.4 Terminologi dan Konsep Dasar Kriptografi

Dalam bidang kriptografi akan ditemukan beberapa istilah atau terminologi.

Isitilah-istilah tersebut sangat penting untuk diketahui dalam memahami ilmu kriptografi. Oleh

karena itu penulis akan menjelaskan beberapa istilah penting dalam bidang kriptografi

yang akan sering penulis gunakan dalam tulisan penulis. Berikut merupakan istilah-istilah

penting tersebut.

a. Plainteks dan Cipherteks

Pesan merupakan data atau informasi yang dimengerti maknanya. Nama lain dari pesan

(28)

lain) dan dapat juga disimpan dalam media penyimpanan (kertas, storage, dan

lain-lain). Pesan dapat berupa teks, video, gambar, dan lain-lain. Agar pesan tersebut tidak

dapat dimengerti maknanya bagi pihak lain, maka pesan perlu disandikan ke bentuk lain

yang tidak dapat dipahami. Bentuk pesan yang telah tersandikan tersebut dinamakan

dengan cipherteks (ciphertext). Perbandingan plainteks dan cipherteks dapat dilihat pada

Gambar 2.3

(a). Plainteks (b). Cipherteks

Gambar 2.3 Perbandingan plainteks dan cipherteks ( Halim, A. 2013).

b. Peserta Komunikasi

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Entitas yang

pertama adalah pengirim, yang berfungsi mengirim pesan kepada entitas lain. Entitas

kedua adalah penerima, yang berfungsi menerima pesan yang dikirimkan. Entitas-entitas

ini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya. Contohnya mesin

ATM berkomunikasi dengan komputer server di bank. Pengirim ingin mengirimkan

pesan dengan aman sampai ke penerima. Jadi solusinya adalah dilakukan penyandian

terhadap pesan tersebut agar tidak diketahui pihak-pihak yang tidak berkepentingan

terhadap pesan tersebut.

c. Enkripsi dan Dekripsi

Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi

(encryption) atau enchipering (standard nama menurut ISO 7498-2). Sedangkan proses

(29)

(descryption) atau dechipering (standard nama menurut ISO 7498-2). Proses enkripsi dan

dekripsi dapat diterapkan pada pesan yang dikirim ataupun pesan yang disimpan.

Encryption of data in motion mengacu pada enkripsi pesan yang ditransmisikan melalui

saluran komunikasi, sedangkan istilah encryption of data at-rest mengacu pada enkripsi

pesan yang tersimpan di dalam storage.

d. Kriptanalis dan Kriptologi

Kriptografi selalu memiliki perkembangan, karena kriptografi memiliki ilmu yang

berlawan yang disebut dengan kriptanalisis. Kriptanalis (cryptanalysis) adalah ilmu dan

seni untuk memecahkan cipherteks menjadi plainteks, tanpa memerlukan kunci yang

digunakan. Pelakunya disebut dengan cryptanalyst. Jika seorang kriptopgrafer (istilah

bagi pelaku kriptografi) mentransformasikan plainteks ke cipherteks dengan

menggunakan kunci, maka sebaliknya seorang kriptanalis berusaha memecahkan

cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology)

adalah studi mengenai kriptografi dan kriptanalis. Hubungan antara kriptologi, kriptografi

dan kriptanalis dapat dilihat pada Gambar 2.4.

Gambar 2.4 Hubungan antara kriptologi, kriptografi dan kriptografi (Kurniawan, Y.

2004)

2.1.5 Jenis Kriptografi

Berdasarkan kunci enkripsi dan dekripsinya algoritma kriptografi terbagi menjadi dua

bagian yaitu :

Kriptologi

(30)

1. Kriptografi simetri

Pada sistem algoritma simetris, kunci untuk proses enkripsi sama dengan kunci untuk

proses dekripsi. Keamanan sistem algoritma simetris terletak pada kerahasiaan kunci.

Istilah lain untuk algoritma simetris adalah kriptografi kunci privat (private key

cryptography) atau kriptografi konvensional (conventional cryptography).

Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal dalam

catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk ke dalam

sistem kriptografi simetri.

Skema Algoritma Simetri dapat dilihat pada Gambar 2.5

Gambar 2.5 Skema Algoritma Simetri (Halim, A. 2013)

Kriptografi simetri adalah kunci enkripsi sama dengan kunci dekripsi, yaitu K.

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu

kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi

pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci

rahasia (secret-key algorithm).

a. Kelebihan Kriptografi Simetri :

1. Proses enkripsi atau dekripsi kriptografi simetri membutuhkan waktu yang

singkat.

2. Ukuran kunci simetri relatif lebih pendek. Kunci

Dekripsi Enkripsi

A B

(31)

3. Otentikasi pengiriman pesan langsung diketahui dari cipherteks yang diterima,

karena kunci hanya diketahui oleh penerima dan pengirim saja.

b. Kekurangan Kriptografi Simetri:

1. Kunci simetri harus dikirim melalui saluran komunikasi yang aman, dan kedua

entitas yang berkomunikasi harus menjaga kerahasiaan kunci.

2. Kunci harus sering diubah, setiap kali melakasanakan komunikasi.

2. Kriptografi asimetri

Berbeda dengan kriptografi kunci simetri, kriptografi kunci publik memiliki dua buah

kunci yang berbeda pada proses enkripsi dan dekripsinya. Nama lain dari kunci asimetri

ini adalah kriptografi kunci-publik (public-key cryptography). Kunci untuk enkripsi pada

kriptografi asimetri ini tidak rahasia (diketahui oleh publik), sedangkan kunci untuk

dekripsi bersifat rahasia (kunci privat). Entitas pengirim akan mengenkripsi dengan

menggunakan kunci publik, sedangkan entitas penerima mendekripsi menggunakan kunci

privat. Skema dari kriptografi asimetri dapat dilihat pada Gambar 2.6.

Gambar 2.6 Skema Algoritma Asimetri ( Halim, A. 2013)

Kriptografi asimetri ini dapat dianalogikan seperti kotak surat yang terkunci dan

memiliki lubang untuk memasukan surat. Setiap orang dapat memasukkan surat ke dalam

kotak surat tersebut, tetapi hanya pemilik surat yang memiliki kunci dan yang dapat

membuka kotak surat. Kunci publik dapat dikirim ke penerima melalui saluran yang

(32)

pihak yang tidak berkepentingan tidak akan dapat mendekripsi pesan tersebut, karena

tidak memiliki kunci privat.

a. Kelebihan kriptografi asimetri:

1. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang

berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana

pada kunci simetri.

2. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka

waktu yang sangat lama.

3. Dapat digunakan dalam pengaman pengiriman kunci simetri.

4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda

tangan digital pada pesan.

b. Kelemahan kriptografi asimetri :

1. Proses enkripsi dan dekripsi umumnya lebih lambat dari algoritma simetri,

karena menggunakan bilangan yang besar dan operasi bilangan yang besar.

2. Ukuran cipherteks lebih besar daripada plainteks.

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

2.2 Algoritma ElGamal

Algoritma ini merupakan salah satu algoritma kriptografi asimetri. Pada subbab ini penulis

akan membahas dasar-dasar dan prinsip kerja dari algoritma ElGamal itu sendiri.

2.2.1 Sejarah Algoritma ElGamal

Algoritma ElGamal merupakan algoritma enkripsi kunci asimetris yang berdasarkan pada

pertukaran kunci Diffe-Hellman. Algoritma ini diusulkan Taher Elgamal pada tahun

1984. Keamanan algoritma ini didasarkan pada kesulitan memecahkan masalah logaritma

(33)

Karena sistem kriptografi simetri menggunakan kunci yang sama untuk enkripsi dan

dekripsi, maka hal ini mengimplikasikan dua pihak yang berkomunikasi saling

mempercayai. Konsep sistem kriptografi kunci-publik ditemukan oleh Diffie dan

Hellman yang mempresentasikan konsep ini pada Tahun 1976. Ide dasar dari sistem

kriptografi kunci-publik adalah bahwa kunci kriptografi dibuat sepasang, satu kunci

untuk enkripsi dan satu kunci untuk dekripsi. Kunci untuk enkripsi bersifat publik (tidak

rahasia), sehingga dinamakan kunci publik (public-key). Sedangkan kunci dekripsi

bersifat rahasia sehingga dinamakan kunci rahasia (private key atau secret key).

Logaritma ini disebut logaritma diskrit karena nilainya berhingga dan bergantung

pada bilangan prima yang digunakan. Karena bilangan prima yang digunakan adalah

bilangan prima yang besar, maka sangat sulit bahkan tidak mungkin menurunkan kunci

privat dari kunci publik yang diketahui walaupun serangan dilakukan dengan

menggunakan sumberdaya komputer yang sangat besar.

Algoritma ElGamal mempunyai kunci publik berupa tiga pasang bilangan dan

kunci rahasia berupa satu bilangan. Algoritma ini mempunyai kerugian pada

cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan tetapi,

algoritma ini mempunyai kelebihan pada enkripsi. Untuk plainteks yang sama, algoritma

ini memberikan cipherteks yang berbeda setiap kali plainteks dienkripsi. Algoritma

ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan

proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi

pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian

dilakukan proses dekripsi dan hasilnya digabungkan.

Besaran-besaran yang digunakan dalam pembangkitan kunci publik algoritma

ElGamal (Taufiq, M. 2010) :

1. Bilangan prima, p (tidak rahasia)

β. Bilangan acak α sebagai akar primitf ( α < p) (tidak rahasia) 3. Bilangan acak a (a < p) (rahasia)

4. Blok plainteks M (plainteks) (rahasia)

(34)

2.3 Landasan Matematika Algoritma ElGamal

Dalam mempelajari sebuah algoritma kriptografi, sebaiknya kita memahami terlebih dahulu

konsep-konsep dasar perhitungan matematis yang akan digunakan dalam suatu algoritma

kriptografi tersebut.

2.3.1 Modulo Exponensial

Modulo eksponensial sering digunakan dalam bidang kriptografi untuk menghitung hasil

enkripsi maupun hasil dekripsi. Permasalahan pada operasi modulo adalah bagaimana

menghitung xy (mod n) dengan n yang sangat besar. Terdapat beberapa cara untuk

menghitung modulo eksponensial, antara lain adalah dengan cara iteratif.

Function mod exp (x, y, n){

Contoh : Tentukan hasil dari 25 mod 30 dengan cara iterasi!

(35)

Maka hasil dari 25 mod 30 adalah 2.

2.3.2 Algoritma Euclidean

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari dua

bilangan bulat. Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat

tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean

(36)

Pembuktian dari persamaan diatas dapat dilihat dari definisi relatif prima diketahui

bahwa GCD(a, n) = 1.

Contoh: untuk inversi dari 7 (mod 11), penyelesaiannya dapat dilihat pada Tabel 2.1.

Tabel 2.1. Penyelesaian contoh soal inversi modulo.

a-1 a-1x 7(mod 11)

1 1 x7 (mod11) = 7

2 2 x7 (mod11) = 3

3 3 x7 (mod11) = 10

4 4 x7 (mod11) = 6

5 5 x7 (mod11) = 2

6 6 x7 (mod11) = 9

7 7 x7 (mod11) = 5

8 8 x7 (mod11) = 1

Pada Tabel 2.1, iterasi berhenti ketika a-1a≡ 1 (mod n) dan diperoleh a-1 = 8.

2.3.4 Bilangan Prima

Bilangan positif p (p>1) disebut bilangan prima jika pembaginya hanya 1 dan p. Sebagai

contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena

bilangan prima harus lebih besar dari satu, maka barisan bilangan prima dimulai dari 2,

yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua

yang merupakan bilangan genap.

Sebuah bilangan bulat p > 1 disebut bilangan prima, jika bilangan tersebut hanya

memiliki pembagi positif 1 dan p. Bilangan bulat yang lebih dari 1 yang bukan bilangan

(37)

2.3.5 Bilangan Relatif Prima

Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB atau GCD (greatest common divisor) dari a dan b bernilai 1.

Contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1. Begitu juga 7 dan 11 relatif

prima karena PBB (7, 11) = 1. Tetapi β0 dan 5 tidak relatif prima sebab PBB (β0, 5) = 5 ≠ 1.

2.3.6 Elemen Primitif

Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitif yang

merupakan elemen pembangun dari grup Z

p. Untuk mencari elemen ini digunakan

p=2q+ 1, dimana q merupakan bilangan prima. Jika elemen α memenuhi α2 mod p ≠ 1 dan

αq mod p ≠ 1, maka α merupakan elemen primitif (Jeffrey dkk, 2008).).

Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat

dilakukan langkah-langkah sebagai berikut :

1. Input bilangan prima aman p ≥ 5.

2. Hitung q= −1 2

3. Hitung α2mod p dan αqmod p.

4. Jika α 2mod p= 1, maka α bukan elemen primitif.

5. Jika αq mod p= 1, maka α bukan elemen primitif.

6. Jika tidak terpenuhi dua persyaratan di atas maka q merupakan elemen primitif.

Misalkan p = 2579 yang merupakan bilangan prima aman. Oleh karena itu, dapat

ditentukan bilangan prima = 2579−1

2 = 1289. Untuk menunjukkan bahwa suatu bilangan bulat a merupakan elemen primitif Z 2579*, harus ditunjukkan bahwa

α

2 � �

(38)

Tabel 2.2. Perhitungan

α

2 mod 2579 dan

α

mod 2579

a 2 3 4 5 6 7 8

α

2 4 9 16 25 36 49 64

α

� 2578 1 1 1 2578 1 2578

2.3.7 Fermat’s Little Theorem

Fermat’s little theorem adalah suatu metode yang digunakan untuk menguji keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan

seorang matematikawan Perancis pada tahun 1640. Meskipun dapat digunakan untuk

mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermat's little theorem

adalah sebagai dasar dari berbagai teknik enkripsi asimetris.

Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan

prima adalah metode Fermat yang dapat dirumuskan sebagai berikut:

Untuk bilangan prima p dan bilangan bulat a, ap≡ a (mod p) dan jika a tidak dapat dibagi oleh p, maka a p-1≡1 (mod p) (Kromodimoeljo, S. 2010). Di mana p adalah bilangan bulat dan a adalah urutan bilangan yang lebih kecil dari p.

Contoh penerapan metode Fermat adalah sebagai berikut:

a. Bila p = 4

Maka 1 ≤a< 4, didapat a = {1, 2, 3}

a p-1mod p

1 4-1 mod 4 = 13 mod 4 = 1

24-1 mod 4 = 23 mod 4 = 0

34-1 mod 4 = 33 mod 4 = 3

Jadi, angka 4 bukan merupakan bilangan prima sebab dalam pengecekan menggunakan

metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 4 terdapat

(39)

b. Bila p = 5

Maka 1 ≤a< 5, jadi didapat a = {1, 2, 3, 4}

a p-1 mod p

1 5-1 mod 5 = 14 mod 5 = 1

25-1 mod 5 = 24 mod 5 = 1

35-1 mod 5 = 34 mod 5 = 1

45-1 mod 5 = 44 mod 5 = 1

Jadi, angka 5 merupakan bilangan prima sebab dalam pengecekan menggunakan

metode Fermat didapat semua hasil dari urutan bilangan yang lebih kecil dari 5 adalah 1.

Untuk angka yang besar dengan jumlah nilai a yang banyak, hanya diambil beberapa

angka sebagai contoh untuk dilakukan pengujian dengan metode Fermat.

2.4 Prinsip Kerja Algoritma ElGamal

2.4.1 Proses Pembangkitan Kunci

Langkah-langkah dalam pembangkitan kunci

1. Pilih sembarang bilangan prima p ( disarankan bilangan prima yang bernilai besar

agar aman dan uji bilangan prima tersebut dengan metode Fermat). Misalkan p =

271

2. Ambil bilangan α sebagai akar primitive mod p

Misalkan α =107

3. Ambil bilangan acak a dengan syarat a harus berada dalam rentang β≤a<p-1.

Misalkan a = 96

4. Hitung berapa x=αa mod p

= 107 96 mod 271

= 39

(40)

1. Kunci publik (p,α,x) = (271, 107, 39)

2. Kunci privat (p,a)= (271, 96)

2.4.2 Proses Enkripsi

Langkah-langkah dalam mengenkripsi pesan:

1. Terima kunci publik (p, α, x) = (271, 107, 39)

2. Plainteks m disusun menjadi blok-blok m1, mβ, …, mp-1 sedemikian sehingga setiap

blok merepresentasikan nilai di dalam rentang 0 sampai p – 1.

3. Ubah nilai blok pesan ke dalam nilai ASCII. Ekspresikan pesan m1 = c = 99 (kode

ASCII) sebagai bilangan

4. Ambil sebuah bilangan asli b < p-1

b = 50

5. Hitung y = αb mod p

= 10750 mod 271

= 238

Hitung c = (m(xb mod p)) mod p

= (99(3950 mod 271) mod 271

= 99.169 mod 271

= 200

Maka dari perhitungan di atas, kita mendapatkan nilai y dan c sebagai cipherteks nya

yaitu (238, 200). Jadi, ukuran cipherteks dua kali ukuran plainteksnya. Proses diatas akan

berulang untuk membaca semua blok pesan untuk menghasilkan cipherteks.

6. Kirim y = 238 dan c = 200 ke pemilik kunci publik.

2.4.3 Proses Dekripsi

Langkah-langkah dalam mendekripsi pesan:

(41)

2. Hitung Z = yp-1-a mod p

= 238 271-1-96 mod 271

= 238 174 mod 271

= 178

Hitung M = c.z mod p

= 200. 178 mod 271

= 99. Karakter dalam ASCII adalah c. sesuai dengan plainteks yang

dikirim sender, yang berarti bahwa plainteks ditemukan kembali dari pasangan cipherteks

y dan c. Kemudian menggabungkan lagi blok m1, m2, ….. menjadi plainteks yang utuh.

2.5 Defenisi Kompresi

Kompresi data adalah ilmu atau seni yang merepresentasikan informasi dalam bentuk

yang lebih compact. Istilah kompresi tersebut diterjemahkan dari kata bahasa Inggris

compression” yang berarti pemampatan. Dalam bidang teknik, kompresi berarti proses memampatkan sesuatu yang berukuran besar sehingga menjadi kecil. Dengan demikian,

kompresi data berarti proses untuk memampatkan data agar ukurannya menjadi lebih

kecil (Komputer, W. 2003).

Definisi kompresi data adalah proses yang mengkonversi sebuah masukan berupa aliran data (the source atau data asli mentah) menjadi suatu aliran data lain (the Output,

aliran bit, atau aliran sudah dikompres) yang memiliki ukuran lebih kecil. Aliran data

(stream) dapat berupa sebuah file atau buffer pada memori. Data dalam konteks kompresi

data melingkupi segala bentuk digital dari informasi, yang dapat diproses oleh sebuah

program komputer. Bentuk dari informasi tersebut secara luas dapat diklasifikasikan

sebagai teks, suara, gambar dan video (Salomon,D. 2007).

Tujuan kompresi data adalah untuk mempercepat dan menghemat biaya

(42)

tujuan untuk dapat mengurangi ukuran data dan dapat disimpan pada media penyimpanan

yang memiliki ukuran relatif kecil.

2.5.1 Penggolongan Algoritma Kompresi

Secara garis besar terdapat 2 buah penggolongan algoritma kompresi data yaitu kompresi

lossy, dan kompresi lossless (Merdiyan, M. 2005).

1. Kompresi Lossless merupakan metoda kompresi data yang memungkinkan data

asli dapat disusun kembali dari data hasil kompresi maka rasio kompresi pun tidak

dapat terlalu besar untuk memastikan semua data dapat dikembalikan ke bentuk

semula.

Contoh metode ini adalah Elias Gamma Code, Shannon-Fano Coding, Huffman

Coding, Arithmetic Coding, Run Length Encoding, dan lain-lain.

2. Kompresi Lossy adalah suatu metode untuk mengkompresi data dan

mendekompresinya. Data yang diperoleh mungkin berbeda dari data aslinya,

tetapi perbedaan itu cukup dekat. Metode ini paling sering digunakan untuk

kompres data multimedia (Audio file dan gambar). Format kompresi Lossy

mengalami generation loss yaitu jika mengalami prose kompresi-dekompresi

berulang kali maka akan menyebabkan kehilangan kualitas secara progresif.

Contoh metode ini adalah Transform Coding, Wavelet, dan lain-lain.

2.5.2 Algoritma Elias Gamma Code

Elias Gamma Code adalah sebuah algoritma kompresi yang dibuat oleh Peter Elias.

Untuk membuat tabel kode Elias Gamma, Elias menambah panjang kode dalam unary

(u). Dalam kode berikutnya, E ditambahkan pada panjang kode (M) dalam biner ( ).

Dengan demikian, Elias Gamma Code, yang juga untuk bilangan bulat positif, sedikit

lebih kompleks untuk dibangun (Salomon, D. 2007).

Adapun aturan untuk mengkodekan sebuah bilangan dengan menggunakan Elias

Gamma (Sukiman & Chandra, 2013) adalah sebagai berikut:

(43)

2. Kurangkan 1 dari jumlah bit yang ditulis pada langkah pertama dan tambahkan

sesuai dengan banyaknya bilangan nol (u) diikuti oleh angka 1.

3. Gabungkan bilangan dalam bentuk biner ( ) dengan kode dalam bentuk unar (u)

dengan menghilangkan angka 1 didepan sehingga menghasilkan E (n).

Contoh pada bilangan integer 4 (n=4), maka :

(4) = 100

M = 3

u (4) = 001

E (4) = 100001 = 00001

Elias Gamma hanya dapat digunakan untuk mengkodekan bilangan bulat positif

dan mengasumsikan bahwa pengkodeaan Gamma hanya efisien untuk integer kecil

tetapi tidak cocok untuk integer yang besar, dimana kode terparameter dari Elias Code

yang lain adalah Delta code lebih cocok digunakan. Tabel Elias Gamma Code dapat

dilihat pada Tabel 2.3.

Tabel 2.3. Tabel Elias Gamma Code

n M Unary (u) E (n) hapus angka 1 disebelah

(44)

n M Unary (u) E (n) hapus angka 1 disebelah kiri

2.5.2.1 Konsep Kompresi Data

Untuk proses kompresi menggunakan Elias Gamma Code kita merujuk pada Tabel2.3.

Dimana Elias Gamma ini hanya cocok diterapkan untuk bilangan desimal 1 hingga 15

karena pengkodean kelima belas bilangan ini hanya memerlukan jumlah bit 1 hingga 7

bit sehingga efisiensi penyimpanan di dapat. Proses kompresi sendiri didasarkan pada

bahwa isi file akan dibaca secara per byte (8 bit) sehingga menghasilkan nilai pembacaan

antara 0 hingga 255.

Suatu metode pada kompresi data akan menghasilkan bit-bit (satuan terkecil

pembentuk data) data baru yang lebih pendek dibandingkan oleh bit-bit data sebelum

dikompresi. Bit-bit data yang lebih pendek tersebut biasanya tidak akan bisa dibaca oleh

komputer sebelum dilakukan proses encoding. Pada proses encoding bit-bit data tersebut

di-encode setiap delapan bitnya sehingga membentuk satu karakter yang dapat dibaca

oleh komputer. Begitu juga sebaliknya, pada saat dekompresi bit-bit data tersebut

di-decode kembali agar membentuk bit-bit data semula yang akan digunakan dalam proses

dekompresi. Karena pada saat proses dekompresi dibutuhkan bit-bit data sebelum

di-Encode untuk dapat dibaca kembali dalam proses dekompresi.

Didalam komputer satu karakter direpresentasikan oleh bilangan ASCII

(American Standard Code For Information Interchange) sebanyak delapan bit dalam

bilangan biner. Jika ternyata jumlah bit-bit data tersebut bukan merupakan kelipatan

delapan. Maka dibentuk variabel baru sebagai penambahan ke bit-bit data itu agar bit-bit

(45)

1. Padding

Padding adalah penambahan bit 0 sebanyak kekurangan jumlah bit-bit data pada hasil

proses kompresi sehingga jumlah keseluruhan bit-bit data tersebut merupakan kelipatan

delapan (habis dibagi delapan). Contoh misalkan dihasilkan bit-bit data hasil kompresi

yaitu 1001011. Terdapat 7 bit data dalam bilangan biner. Maka dilakukan penambahan

bit 0 sebanyak 1 kali agar jumlah bit-bit data tersebut habis dibagi delapan. Sehingga bit

bit data itu menjadi 10010110 setelah diberikan padding.

2. Flagging

Flagging adalah penambahan bilangan biner sepanjang delapan bit setelah padding

dimana flagging ini adalah sejumlah bilangan yang memberikan sebuah tanda bahwa

terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Penambahan flagging

ini dimaksudkan untuk mempermudah dalam membaca bit-bit data hasil kompresi pada

saat proses dekompresi. Contoh misalkan bit-bit data yang telah diberikan padding

adalah10010110. Karena terdapat 1 bit penambahan padding maka flag nya adalah

bilangan biner dari 1 dengan panjang 8 bit yaitu 00000001. Sehingga bit-bit datanya

menjadi 1001011000000001 setelah diberikan flagging.

Contoh :

Berikut ini adalah contoh proses kompresi file teks dengan metode Elias Gamma Code.

Terdapat file teks yang berisikan string “KUKU KAKI KAKAK KAKEKKU KAKU”.

Untuk ukuran String dapat dilihat pada Tabel 2.4.

Tabel 2.4. String yang Belum Dikompresi

char ASCII Code ASCII Code (Binary) Bit Frek Bit x Frek

K 75 01001011 8 13 104

A 65 01000001 8 5 40

U 85 01010101 8 4 32

(46)

Lanjutan Tabel 2.4. String yang Belum Dikompresi

char ASCII Code ASCII Code (Binary) Bit Frek Bit x Frek

I 73 01001001 8 1 8

E 69 01000101 8 1 8

Total 224

Berdasarkan kode ASCII, satu karakter bernilai delapan bit bilangan biner. Sehingga

35 karakter pada string mempunyai nilai biner sebanyak 224 bit. Sebelum melakukan

proses kompresi, karakter tersebut diurutkan terlebih dahulu berdasarkan dari karakter

yang memiliki frekuensi terbesar ke terkecil. Proses kompresi untuk Elias Gamma Code

dapat dilihat pada Tabel 2.5

Tabel 2.5. String yang Sudah Dikompresi Dengan Elias Gamma Code

char Elias Gamma Code Bit Frek Bit x Frek

K 1 1 13 13

A 001 3 5 15

U 011 3 4 12

Sp 00001 5 4 20

I 00011 5 1 5

E 01001 5 1 5

Total 70

Dapat dibentuk string bit dari string sebelum dikompresi yaitu “ KUKU KAKI KAKAK

KAKEKKU KAKU” menjadi string bit

“1011101100001100110001100001100110011000011001101001110110000110011011”

. Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bit-bit padding

dan flagging diakhir String bit. Bit-bit itu dihasilkan dari panjang String bit itu sendiri

apakah habis dibagi delapan dan berapa sisanya jika dibagi delapan. Karena jumlah

(47)

dan flaggingnya adalah “00000010”

menjadi“1011101100001100110001100001100110011000011001101001110110000110

0110110000000010”. Sehingga total bit seluruhnya setelah penambahan padding dan

flagging adalah 80 bit.

2.5.3. Pengukuran Kinerja Kompresi Data

Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor

atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi

data tersebut, yaitu:

1. Ratio of compression (Rc)

Ratio of compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi

dengan ukuran data setelah dikompresi.

Rc = (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Ratio of compression sebesar 2.75. Itu berarti besar data

sebelum kompresi adalah 2.75 kali lipat dari besar data setelah dikompresi.

2. Compression ratio (Cr)

Compression ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat

dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data

sebelum dikompresi.

Cr = x 100% (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Compression ratio sebesar 35%. Itu berarti setelah

(48)

3. Redundancy (Rd)

Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi

setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih

antara ukuran data sebelum dikompresi dengan data setelah dikompresi.

� = %−� (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Redundancy sebesar 14%. Itu berarti besarnya kelebihan

(49)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan menganalisis terhadap system yang akan dirancang dengan algoritma

kriptografi ElGamal dan algoritma kompresi Elias Gamma Code.

3.1 Analisis

Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang

terlebih dahulu. Tujuan dari analisis ini sendiri adalah agar sistem yang dirancang

menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu

dengan dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat

sistem, dan jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut,

maka akan mudah untuk diselesaikan.

Analisis sistem terdiri dari tahapan-tahapan berbeda yang mendekripsikan

pengembangan sistem. Dalam tugas akhir ini, ada dua fase analisis yaitu: analisis

masalah, dan analisis kebutuhan.

3.1.1 Analisis Masalah

Untuk dapat mengurangi ancaman yang dapat terjadi dalam pertukaran informasi

yang bersifat rahasia dalam sebuah proses komunikasi data dapat dilakukan dengan cara

melakukan pengkodean terhadap informasi yang akan disimpan atau dikirim.

Gambar 3.1. merupakan diagram Ishikawa yang dapat digunakan untuk

menganalisis masalah. Bagian kepala atau segiempat yang berada di sebelah kanan

(50)

Gambar 3.1 DiagramIshikawa Masalah Penelitian.

Sistem yang akan dibangun menggunakan Netbens versi 7.0.1 yang memudahkan

para pengguna untuk melakukan proses pengamanan dan kompresi file .

3.1.2 Analisis Kebutuhan

Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan

nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu

sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan

batasan lainnya.

3.1.2.1 Kebutuhan Fungsional

Kebutuhan fungsional adalah fungsi-fungsi yang harus dipenuhi pada aplikasi yang

dirancang. Kebutuhan fungsional yang harus dipenuhi aplikasi yang dirancang adalah

sebagai berikut:

(51)

b. Sistem harus mampu melakukan enkripsi dengan menggunakan ElGamal

setiap karakter yang berada dalam String yang telah dibaca sehingga

menghasilkan ciphertext, serta sistem harus mampu melakukan dekripsi

ciphertext menjadi String yang sama dengan String sebelum dikodekan.

c. Sistem Harus mampu melakukan kompresi dengan menggunakan algoritma

Elias Gamma Code setiap karakter yg berada dalam string yang bebentuk

cipherteks sehingga menghasilkan file yg telah dikompresi, serta mampu

melakukan dekompresi menjadi string yang sama dengan string berbentuk

cipherteks sebelum dikompresi

3.1.2.2 Kebutuhan Non Fungsional

Kebutuhan fungsional mencakup karakteristik berikut:

1. Performa

Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari fungsi kriptografi

yang dilakukan oleh sistem.

2. Efisiensi

Sistem atau perangkat lunak yang akan dibangun harus sesederhana mungkin agar

mudah digunakan oleh pengguna, responsif.

3. Ekonomi

Sistem atau perangkat lunak yang akan dibangun harus dapat bekerja dengan baik

tanpa harus mengeluarkan biaya tambahan dalam penggunaan perangkat keras

maupun perangkat lunak.

4. Dokumentasi

Sistem atau perangkat lunak yang akan dibangun dapat menyimpan data hasil proses

enkripsi.

5. Manajemen kualitas

Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses

(52)

6. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input

yang tidak sesuai.

3.2. Pemodelan Sistem

Pemodelan aplikasi yang dirancang bertujuan untuk menggambarkan semua kondisi dan

bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan aplikasi dilakukan

dengan membuat use-case diagram dan activity diagram.

3.2.1. Use-Case Diagram

Untuk menganalisa komponen-komponen yang berperan dalam sistem yang dirancang,

penulis menggunakan use-case diagram agar proses penganalisaan komponen dapat

dilakukan dengan mudah. Use-case diagram sistem pada aplikasi yang dirancang dapat

dilihat pada Gambar 3.2.

Gambar 3.2 Use-CaseDiagram Pada Sistem.

3.2.2. Activity Diagram

Activity diagram adalah diagram aktivitas yang mendeskripsikan proses kerja dalam

sebuah sistem yang sedang berjalan. Dalam diagram aktivitas ini dijelaskan proses kerja

(53)

3.2.2.1Activity Diagram Proses Pembangkit Kunci

Gambar 3.3 Activity Diagram Proses Pembangkit Kunci

Berdasarkan Gambar 3.3 untuk melakukan proses pembangkit kunci hal pertama yang

dilakukan adalah mengklik tombol bangkitkan kunci, dimana untuk nilai bilangan prima,

alpha, a dan x sudah ditentukan sendiri oleh system. Setelah selesai proses bangkitkan

kunci maka user menyimpan kunci publik dan privat yang nantinya akan digunakan

(54)

3.2.2.2Activity Diagram Proses Enkripsi ElGamal

Gambar 3.4 Activity Diagram Proses Enkripsi Pesan

Berdasarkan Gambar 3.4 untuk melakukan enkripsi hal yang pertama dilakukan adalah

input file yang akan dienkripsi, kemudian sistem menampilkan isi file yang akan

dienkripsi. Setelah itu, input file kunci publik yang telah disimpan, sistem akan

menampilkan kunci publik yang akan digunakan dalam proses enkripsi. Setelah

penginputan kunci selesai, proses enkripsi dapat dilakukan dan selanjutnya sistem akan

menampilkan file cipherteks hasil enkripsi.

3.2.2.3Activity Diagram Proses Kompresi Elias Gamma Code

(55)

Berdasarkan gambar 3.5 untuk melakukan kompresi hal yang pertama dilakukan adalah

input file cipherteks yang akan di kompresi, Kemudian sistem akan menampilkan isi file

cipherteks yang akan dikompresi, setelah itu kompresi file cipherteks tersebut, kemudian

sistem akan menampilkan penyimpanan file yang dikompresi selanjutnya simpan file

kompresi dan proses kompresi selesai.

3.2.2.4Activity Diagram Proses Dekompresi Elias Gamma Code

Gambar 3.6 Activity Diagram Proses Dekompresi Elias Gamma Code

Berdasarkan gambar 3.6 untuk melakukan dekompresi hal yang pertama dilakukan

adalah input file hasil kompresi, sistem akan menampilkan file dekompresi

tersebut.Setelah itu dekompresi file selanjtunya simpan file yang sudah didekompresi, dan

(56)

3.2.2.5Activity Diagram Proses Dekripsi ElGamal

Gambar 3.7 Activity Diagram Proses Dekripsi Pesan

Berdasarkan gambar 3.7 untuk melakukan dekrispi ElGamal, hal yang pertama

dilakukan adalah input file cipherteks (hasil dekompresi), setelah itu sistem akan

menampilkan isi file cipherteks, setelah itu input kunci privat yang telah disimpan,

selanjutnya dekripsi cipherteks, berikutnya sistem akan menampilkan hasil dekripsi

berupa palinteks awal seperti sebelum dilakukan proses enkripsi, dan simpan plainteks,

dan proses dekripsi selesai.

3.2.2.6 Sequence Diagram

Sequence Diagram adalah bentuk pemodelan sistem yang menggambarkan hubungan

antar objek atau objek yang saling berinteraksi melalui pesan dalam eksekusi. Diagram

Gambar

Tabel 2.1. Penyelesaian contoh soal inversi modulo.
Tabel 2.3. Tabel Elias Gamma Code
Gambar 3.1 Diagram Ishikawa Masalah Penelitian.
Gambar 3.3 Activity Diagram Proses Pembangkit Kunci
+7

Referensi

Dokumen terkait

Berdasarkan data pengujian pada Tabel 4.4 untuk algoritma Elias Gamma Code dan pada Tabel 4.6 untuk algoritma Shannon-Fano, berikut adalah grafik perbandingan

Keywords: Data Compression, Elias Gamma Code, Elias Delta Code, Levenstein Code, Compression Ratio, Space Saving, Compression Speed..

Aplikasi Kompresi File dengan Algoritma Elias Gamma.. Jurnal CORE

enkripsi pada kriptografi kurva eliptik dengan algoritma ElGamal dan metode. pembangkit bilangan prima Rabin Miller dapat diproses dengan baik, dan

Pada pengerjaan skripsi dengan judul Perbandingan Algoritma Fibonacci Code Dan Inverted Elias Gamma Code dalam Kompresi File Teks, penulis menyadari bahwa banyak pihak

Fibonaaci Code dan Inverted Elias Gamma Code merupakan jenis kompresi lossless yang digunakan dalam penelitian ini, yang mana akan diukur kinerjanya dengan

PERBANDINGAN KINERJA ALGORITMA KOMPRESI INVERTED ELIAS GAMMA DAN CAPOCELLI CODE PADA FILE

Tahapan ini dilakukan agar penulis mengetahui proses kompresi pada file dokumen menggunakan algoritma Elias Gamma Code Dan algoritma Goldbach Code yang memiliki tujuan untuk