Implementasi Algoritma Elgamal Untuk Keamanan Sms Pada Android

(1)

IMPLEMENTASI ALGORITMA ELGAMAL UNTUK

KEAMANAN SMS PADA ANDROID

SKRIPSI

FERA FERDIAN

131421060

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015


(2)

i

IMPLEMENTASI ALGORITMA ELGAMAL UNTUK KEAMANAN SMS PADA ANDROID

SKRIPSI

DiajukanuntukmelengkapitugasakhirdanmemenuhisyaratmemperolehijazahSarjanaIlmu Komputer

FERA FERDIAN 131421060

PROGRAM STUDIS1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA ELGAMAL UNTUK

KEAMANAN SMS PADA ANDROID

Kategori : SKRIPSI

Nama : FERA FERDIAN

NomorIndukMahasiswa : 131421060

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, KomisiPembimbing :

Pembimbing II Pembimbing I

M. Andri Budiman, ST, M.Comp.Sc, MEM Prof. Dr. Muhammad Zarlis

Diketahui/Disetujuioleh

Program Studi S1 IlmuKomputer Ketua,

Dr. PoltakSihombing, M.Kom NIP.196203171991031001


(4)

iii

PERNYATAAN

IMPLEMENTASI ALGORITMA ELGAMAL UNTUK KEAMANAN SMS PADA ANDROID

SKRIPSI

Sayamenyatakanbahwaskripsiiniadalahhasilkaryasayasendiri, kecualibeberapakutipan dan ringkasan yang masing-masingtelah disebutkansumbernya.

Medan, Juni2015

Fera Ferdian 131421060


(5)

PENGHARGAAN

Pujidansyukurkehadirat Allah SWT, yang atas berkatRahmatdanizin-Nyapenulisdapatmenyelesaikanpenyusunanskripsiini,

sebagaisyaratuntukmemperolehgelarSarjanaKomputer, pada Program Studi S1 IlmuKomputerFakultasIlmuKomputerdanTeknologiInformasiUniversitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada:

1. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara sekaligus selaku Dosen Pembimbing I yang telah banyak memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

2. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing II yang telah banyak memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

3. Bapak Dr. PoltakSihombing, M.Komselaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

4. Bapak Drs. AgusSalimHarahap, M.Si selaku Dosen PembandingIyang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

5. IbuDian Rachmawati, S.Si. M.Kom selaku Dosen PembandingII yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

6. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

7. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruhtenaga pengajar dan pegawai diProgram Studi S1Ilmu Komputer Fasilkom-TIUSU.

8. Kedua orang tuapenulis, yaituAyahandaSyahrulTanjung yang selalumemberikandoadandukungansertaIbundaNuraini yang terusmencurahkankasihsayangsertabimbinganterbaiknyakepadapenulis.Kepadaad

ikpenulis, CeniDwiAnanda yang

selalumembantudanmendukungpenulisdalammenyelesaikanstudi, sertakeluargabesarpenulisatassegalaperhatiandandukungan.

9. Rekan-rekan kuliah, danteman-teman terbaik, khususnyaWiwin, Nurul,Ririn,Tiany, Melsa, Tika,Ade, Iqbal, Ighfar, Ryan, Adli, Satrioserta angkatan 2013 yang tidakdapatdisebutkansatupersatuyang selalu memberikan semangat dan dorongan kepada penulisselama menyelesaikan skripsi ini.


(6)

v

Semoga Allah SWT senantiasa melimpahkanberkahkepadasemuapihak yang

telahmemberikanbantuan, perhatian, sertadukungankepadapenulisdalammenyelesaikanskripsiini.Akhir

kata,semogaskripsiinibermanfaatbagipribadi, keluarga, masyarakat, organisasidannegara.

Medan, Juni 2015 Penulis


(7)

ABSTRAK

Komunikasiadalahhalpenting yang dilakukanseseorangatauinstansiuntuksalingberhubungandanbertukarinformasi.SMS

(Short Message Service) merupakanlayanankomunikasi yang

sangatumumdigunakanmasyarakat.Dalam hal ini, untuk menjamin keamanan dan kerahasiaan pesan tersebut digunakan metode kriptografi. Kriptografi merupakan ilmu yang mempelajari tentang teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data dan autentifikasi data.Pengamanan pesan yang di lakukan adalah dengan menggunakan algoritmaElGamal. Pengujianbilangan prima menggunakanFermat’s Little

Theoremdenganpanjangmaksimalkuncipublik 32 bit.

Implementasisistemmenggunakanbahasapemrograman Java denganmenggunakan IDE Eclipse.Pengujian algoritma dilakukan dengan meneliti perbandingan panjang plainteks dan cipherteksyang di hasilkan.

Kata Kunci: Kriptografi, KunciRahasia, KunciPublik, ElGamal, Fermat’s Little


(8)

vii

IMPELEMENTATION OF ELGAMAL ALGORITHM FOR SMS SECURITY ON ANDROID

ABSTRACT

Communication is the important thing to do for someone to interact and exchange information. SMS (Short Message Service) is a communication service that very commonly used. To maintain the security and confidentiality of the message is by using cryptography. Cryptography is the science of mathematical techniques related to aspects of information security such as data confidentiality, data authenticity, data integrity, and authentication data. Text security is done by a ElGamalcryptography in a text file Testing primes using the Fermat’s Little Theorem.The system on ElGamalwas tested with a maximum key length of 32 bits. Implementation of the system using Java programming language in Eclipse. The results showed that ratio of the length of plaintext and ciphertext produced.

Keyword: Cryptography, Private Key, Public Key, ElGamal, Fermat’s Little


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel xi

Daftar Gambar xii

Daftar Lampiran xiv

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4Manfaat Penelitian 3

1.5 Tujuan Penelitian 3

1.6 MetodologiPenelitian 3

1.7 Sistematika Penulisan 4

Bab2 Landasan Teori

2.1 Kriptografi 6

2.1.1 Pengertian Kriptografi 6

2.1.2 TerminologiKriptografi 7

2.1.3TujuanKriptografi 7

2.1.4 Sistem Kriptografi 8

2.1.5 Sistem Kriptografi Asimetris 9

2.1.6 Bilangan Prima 10

2.1.7 Aritmatika Modulo 10

2.1.8 Modulo Eksponensial 10

2.1.9 Invers Modulo 11

2.1.10 ElemenPrimitif 12

2.1.11 Fermat’s Little Theorem 12

2.1.12 Algorima Euclid 14

2.2AlgoritmaElGamal 14

2.2.1 PembangkitKunci 14

2.2.2Proses Enkripsi 15

2.2.3Proses Dekripsi 15

Bab 3 Analisis dan Perancangan

3.1 AnalisisSistem 17


(10)

ix

3.1.2 AnalisisKebutuhan 17

3.1.2.1KebutuhanFungsional 18

3.1.2.2KebutuhanNonfungsional 18

3.2 Pemodelan Aplikasi 19

3.2.1 Use Case Diagram 19

3.2.2 Activity Diagram 20

3.2.2.1 Activity Diagram Proses PembangkitKunci 20 3.2.2.2Activity Diagram Proses Enkripsi Pesan 21 3.2.2.3Activity Diagram Proses Dekripsi Pesan 22

3.3 Perancangan Sistem 23

3.3.1 Pembuatan Algoritma Program 23

3.3.2 Alur Proses Sistem Secara Umum 23

3.3.3Alur Proses PembangkitKunci 24

3.3.4 Alur Proses Enkripsi 25

3.3.5Alur Proses Dekripsi 26

3.4 Perancangan Antarmuka (Interface) 27

3.4.1 Rancangan Halaman Utama 27

3.4.2 Rancangan Halaman PembangkitKunci 28

3.4.3Rancangan Halaman KirimKunci 29

3.4.4 Rancangan Halaman BuatPesanBaru 30

3.4.5Rancangan Halaman Pesan Masuk 31

3.4.6 Rancangan Halaman Dekripsi Pesan 32

3.4.7Rancangan Halaman Dekripsi Petunjuk 33 Bab4 Implementasi dan Pengujian

4.1 Implementasi 34

4.1.1 Implementasi Pengujian Aplikasi 34

4.2 Pengujian 39

4.2.1PengujiandanAnalisisHasilEnkripsi dan Dekripsi 39 Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 42

5.2Saran 43


(11)

DAFTAR TABEL

Halaman

2.1 Penyelesaiancontohsoalinversi modulo 11

4.1Perbandingan Panjang Plainteks dan Panjang Cipherteks yang dihasilkan dalam proses enkripsi menggunakan algoritma ElGamal. 67


(12)

xi

DAFTAR GAMBAR

Halaman

2.1 Skema Proses Enkripsi dan Dekripsi 7

2.2 Skema Sistem Kriptografi Asimetris Kunci Publik 9

3.1Use-Case Diagram Pada Sistem 19

3.2Activity Diagram Proses Pembangkit Kunci 20

3.3Activity Diagram Proses Enkripsi Pesan 21

3.4Activity Diagram Proses Dekripsi Pesan 22

3.5Flowchart Gambaran Umum Sistem 24

3.6Flowchart Pembangkitan Kunci 25

3.7Flowchart Proses Enkripsi 26

3.8Flowchart Proses Dekripsi 27

3.9Rancangan Antarmuka Halaman Utama 28

3.10Rancangan Antarmuka Halaman Pembangkit Kunci 29

3.11Rancangan Halaman Kirim Kunci Publik 30

3.12Rancangan HalamanBuat Pesan Baru 31

3.13Rancangan HalamanPesan Masuk 32

3.14Rancangan HalamanPetunjuk 33

4.1 Tampilan icon aplikasi pada app drawer 35

4.2 Tampilan Halaman Awal Aplikasi 35

4.3Tampilan Halamanpembangkit Kunci 36

4.4Tampilan Halaman Kirim Kunci Publik 37

4.5Tampilan Halaman Buat Pesan Baru 37

4.6Tampilan Halaman Pross Enkripsi 38

4.7Tampilan Halaman Pesan Masuk 38

4.8Tampilan Halaman Proses Dekripsi 39


(13)

DAFTAR LAMPIRAN

Halaman

A. Listing Program A-1


(14)

vi

ABSTRAK

Komunikasiadalahhalpenting yang dilakukanseseorangatauinstansiuntuksalingberhubungandanbertukarinformasi.SMS

(Short Message Service) merupakanlayanankomunikasi yang

sangatumumdigunakanmasyarakat.Dalam hal ini, untuk menjamin keamanan dan kerahasiaan pesan tersebut digunakan metode kriptografi. Kriptografi merupakan ilmu yang mempelajari tentang teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data dan autentifikasi data.Pengamanan pesan yang di lakukan adalah dengan menggunakan algoritmaElGamal. Pengujianbilangan prima menggunakanFermat’s Little

Theoremdenganpanjangmaksimalkuncipublik 32 bit.

Implementasisistemmenggunakanbahasapemrograman Java denganmenggunakan IDE Eclipse.Pengujian algoritma dilakukan dengan meneliti perbandingan panjang plainteks dan cipherteksyang di hasilkan.

Kata Kunci: Kriptografi, KunciRahasia, KunciPublik, ElGamal, Fermat’s Little


(15)

IMPELEMENTATION OF ELGAMAL ALGORITHM FOR SMS SECURITY ON ANDROID

ABSTRACT

Communication is the important thing to do for someone to interact and exchange information. SMS (Short Message Service) is a communication service that very commonly used. To maintain the security and confidentiality of the message is by using cryptography. Cryptography is the science of mathematical techniques related to aspects of information security such as data confidentiality, data authenticity, data integrity, and authentication data. Text security is done by a ElGamalcryptography in a text file Testing primes using the Fermat’s Little Theorem.The system on ElGamalwas tested with a maximum key length of 32 bits. Implementation of the system using Java programming language in Eclipse. The results showed that ratio of the length of plaintext and ciphertext produced.

Keyword: Cryptography, Private Key, Public Key, ElGamal, Fermat’s Little


(16)

BAB 1 PENDAHULUAN

1.1. Latar Belakang Masalah

Komunikasi adalah kegiatan penting yang dilakukan seseorang atau instansi untuk berhubungan dengan orang lain atau instansi lain untuk saling berbagi informasi.Ada informasi yang dapat disebarluaskan ke masyarakat umum namun ada informasi yang harus dirahasiakan agar tidak terjadi penyalahgunaan. Informasi yang disampaikan dapat berupa tulisan. Jika tulisan atau pesan disampaikan secara langung dari pengirim kepada penerima pada saat itu juga dan tanpa melalui perantara apapun, maka hal tersebut dapat menjamin keamanan, keutuhan, dan keaslian pesan. Namun jika pesan harus dikirim melalui perantara dan memerlukan waktu dalam proses pengirimannya, maka ada kemungkinan bahwa pesan akan mengalami penyadapan sehingga pesan rahasia diketahui pihak yang tidak seharusnya atau kemungkinan pesan mengalami perubahan sebelum sampai ke tujuan sebenarnya.

Berbagai macam layanan komunikasi tersedia saat ini, seperti SMS (Short

Message Service) yang kita kenal dengan pesan singkat. SMS merupakan layanan

komunikasi yang sangat umum digunakan masyarakat. Seorang pengirim pesan yang hendak mengirim SMS kepada rekannya, pesan tersebut bersifat rahasia dan penting sehingga tidak seorang pun boleh membaca pesan tersebut, padahal bila admin server sedang iseng, sangat mungkin dia akan membaca pesan-pesan yang ada di servernya. Penerima pun ingin memastikan pengirim merupakan orang yang dikenalnya, bukan orang yang berpura-pura menjadi rekannya.

Untuk menjaga keamanan pesan yang bersifat rahasia dapat dilakukan dengan menerapkan metode kriptografi. Kriptografi adalah ilmu untuk menjaga keamanan pesan yang dapat digunakan untuk menjaga kerahasiaan pesan, keaslian pesan dan


(17)

keaslian pengirim. Ada banyak algortima kriptografi, algoritma yang digunakan dalam penelitian ini adalah algoritma ElGamal.

Algoritma ElGamal adalahan salah satu algoritma asimetris yang menggunakan kunci publik dan kunci privat. Algoritma ElGamal terdiri dari dua bagian yaitu fungsi enkripsi dan dekripsi. Enkripsi adalah teknik untuk membuat pesan menjadi tidak dapat dibaca. Dekripsi adalah proses kebalikan dari enkripsi.

Oleh karena itu, pada penelitian ini, penulis akan mengembangkan sebuah Aplikasi kriptografi untuk enkripsi dan dekripsi pesan berbasis Android yang bertujuan untuk pengamanan pesan serta menjaga keaslian pengirim dan penerima pesan.

Berdasarkan latar belakang yang telah penulis uraikan, maka dilakukan penelitian dengan judul “Implementasi Algoritma ElGamal Untuk Keamanan SMS Pada Android”.

1.2.Rumusan Masalah

Berdasarkan uraian pada latar belakang, maka permasalahan yang akan dibahas yaitu bagaimana merancang dan membangun aplikasi untuk pengamanan SMS pada sistem operasi Android dengan mengimplementasikan algoritma ElGamal.

1.3. Batasan Masalah

Ruang lingkup pada penelitian ini dibatasi pada hal-hal berikut :

1. Penelitian ini tidak membandingkan algoritma Sistem Kriptografi ElGamal dengan algoritman kriptografi lainnya.

2. Data yang digunakan adalah teks atau string berupa 256 karakter yang terdapat pada tabel ASCII (American Standard Code for Information Interchange)8 bit


(18)

3

(menurut ISO 8859-1 dan Microsoft® Windows Latin-1 increases characters), selain dari itu diabaikan.

3. Panjang maksimal kunci publik yang digunakan adalah 32 bit.

4. Pengujian bilangan prima menggunakan Fermat’s Little Theorem dengan bilangan prima lebih besar dari 255.

5. Program dibuat dengan bahasa pemrograman java.

6. Aplikasi yang dibangun hanya ditujukan untuk enkripsi dan deskripsi sms pada perangkat mobile bersistem operasi Android dari versi 2.2 (Frozen Yoghurt) sampai versi 4.1 (Jelly Bean).Pengirim dan penerima SMS harus sama-sama menggunakan aplikasi ini.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah sebagai berikut : 1. Untuk mengimplementasikan Algoritma ElGamal.

2. Untuk membuat aplikasi sistem keamanan SMS dengan algoritma ElGamal pada ponsel berbasis Android.

1.5. Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah sebagai berikut :

1. Menambah pengetahuan penulis dalam melakukan proses enskripsi dan dekripsi pesan dengan menggunaka algoritma ElGamal.

2. Menghasilkan aplikasi sistem keamanan SMS pada ponsel berbasis Android menggunakan algoritma ElGamal yang berguna untuk mengamankan pesan.

1.6.Metodologi Penelitian

Dalam proses pengerjaan tugas akhir ini penulis menggunakan beberapa tahapan metode penelitian, yaitu sebagai berikut :


(19)

1. Studi Literatur

Pada tahap ini dilakukan peninjauan terhadap buku-buku, artikel-artikel, jurnal- jurnal maupun hasil penelitian terdahulu yang terkait dengan algoritma ElGamal.

2. Analisis dan Perancangan

Dengan adanya rumusan dan batasan masalah, permasalahan, dan kebutuhan dianalisis disertai pembuatan flowchart, diagram use case, perancangan antar muka dan perancangan dari aplikasi.

3. Implementasi

Dilakukan implementasi algoritma ElGamal untuk keamanan SMS pada Android sesuai dengan analisis dan perancangan yang telah dilakukan sebelumnya.

4. Pengujian

Aplikasi diuji berdasarkan hasil analisis dan perancangan.

5. Dokumentasi

Selama penelitian berlangsung hingga penelitian berakhir dilakukan pendokumentasian dalam bentuk laporan penelitian (skripsi).

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi dalam lima bab, masing-masing bab diuraikan sebagai berikut :

Bab 1 PENDAHULUAN

Bab ini berisikan latar belakang pemilihan judul, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.


(20)

5

Bab 2 LANDASAN TEORI

Bab ini berisi teori-teori yang berkaitan dengan kriptografi dan algoritma ElGamal.

Bab 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi proses pembuatan algoritma program, Use Case

Scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi,

dan pembuatan user interface aplikasi.

Bab 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi ulasan dan pengujian terhadap program yang telah diimplementasikan.

Bab 5 KESIMPULAN DAN SARAN

Pada bab ini beisi kesimpulan yang diperoleh dalam penelitian dan saran yang diberikan untuk pengembangan lebih lanjut.


(21)

BAB 2

LANDASAN TEORI

2.1. Kriptografi

Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

2.1.1. Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa Yunani yang terdiri dari dua suku kata yaitu kryptos yang artinya tersembunyi dan graphein yang artinya tulisan. Pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext. Pesan yang telah disandikan dan dikirim disebut kriptogram. Proses mengubah plaintext menjadi

ciphertext dosebut encryption atau enciphering atau enkripsi.Proses kebalikan dari

mengubah ciphertext menjadi plaintext, yang dilakukan olehpenerima disebut dekripsi. Siapapun yang terlibat dalam kriptografi disebut cryptographer(Mollin, R. A. 2007).

Menurut Munir,R. (2006), Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (Cryptography is the art and science of keeping

messages secure) “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing

(tulisan).

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, S. 2010).

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut:“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan


(22)

7

menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini”(Haq, H. A. 2013).

2.1.2. Terminologi Kriptografi

Seorang pengirim (sender) ingin mengirim pesan (plaintext; kadang-kadang disebut

cleartext) kepada orang yang dituju (receiver). Selain itu, pengirim ingin pesan yang

dikirim tidak dapat dibaca oleh orang lain yang menyadap percakapan (eavesdropper) atau pesan tersebut. Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut

ciphertext. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi.

Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan

decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi

ditunjukkan secara umum pada Gambar 1 (Schneier, 1996).

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Schneier, 1996)

2.1.3. Tujuan Kriptografi

Kriptografi bertujuan untuk memberikan layanan keamanan kepada pengguna sebagai berikut:

1. Kerahasiaan (Confidentiality)

Informasi dirahasiakan dari semua pihak yang tidak berwenang. 2. Keutuhan Data (Integrity)

Pesan tidak berubah dalam proses pengiriman hingga pesan diterima oleh penerima.

Enkripsi Dekripsi


(23)

3. Autentikasi (Message Authentication)

Kepastian terhadap identitas setiap entitas yang terlibat dan keaslian sumber data. 4. Nirpenyangkalan (Nonrepudiation)

Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data yang telah dikirim atau diterima.

2.1.4. Sistem Kriptografi

Sistem kriptografi terdiri dari 5 bagian yaitu sebagai berikut :

1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca.

2. Secret Key: merupakan masukan bagi algoritma enkripsi yang berupa nilai bebas

terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.

3. Ciphertext: keluaran algoritma enkripsi yang dianggap sebagai pesan dalam

bentuk tersembunyi.

4. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan yaitu teks asli dan teks kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai sesuai dengan algoritma dekripsi.

Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga, yaitu algoritma simetri (menggunakan satu kunci untuk enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk enkripsi dan dekripsi) dan fungsi

hash (Ariyus, 2008).

2.1.5. Sistem Kriptografi Asimetris

Kriptografi asimetris ini dikenal juga sebagai kriptografi kunci publik (public key) dan merupakan bagian sistem kriptografi modern, yaitu kunci enkripsi (public key) dimiliki oleh pengirim dan kunci dekripsi (private key) dimiliki oleh penerima pesan.


(24)

9

Diffie-Hellman adalah sistem kriptografi public key yang pertama, Difie-Hellman tidak sepopuler RSA dan ElGamal karena hanya dapat digunakan untuk key agreement. Menggunakan Difie-Hellman, dua pengguna, sebut saja A dan B, dapat membuat kunci privat yang hanya diketahui oleh A dan B, meskipun komunikasi antara A dan B dapat dilihat semua orang.

Diffe-Hellman menggunakan finite field GF(q) yang sangat besar. A dan B keduanya mengetahui GF(q) dan elemen g ∈ GF(q). GF(q) dan g tidak perlu dirahasiakan, jadi boleh saja diketahui semua orang. Meskipun tidak harus, g sebaiknya merupakan generator untuk GF(q)* , atau setidaknya memiliki order yang besar agar range untuk pembuatan kunci cukup besar.

Kriptografi yang termasuk algoritma asimetris adalahDiffie-Hellman, RSA, ElGamal, DSA dan sebagainya. Skema algoritma kriptografi asimetri dengan kunci publik dapat dilihat pada Gambar 2.2. berikut ini.

Gambar 2.2. Skema Kriptografi Asimetri Kunci Publik (Sadikin, 2012)

2.1.6. Bilangan Prima

Bilangan positif 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.

AlgoritmaEnkri psi

AlgoritmaDekri psi

KPublikB

TeksAsli Ciphertext TeksAsli

A

B

PembangkitK unci KPrivatB


(25)

2.1.7. Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer a

dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat dinotasikan sebagai berikut (Harahap, A. A. 2014).

a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b<n ...(2.1) Sebagai contoh, jika 17 mod 3 = 2, maka 17 = (3 × 5) + 2.

Jika a negatif, maka bagi |a| dengan b mendapatkan sisa bagi r’ (Munir, 2006). Sehingga didapatkan:

a mod b = br’, dimana r’ ≠ 0 dan a< 0 …...……….(2.2) Sebagai contoh, jika |-25| mod 7 = 4, maka -25 mod 7 = 7 – 4 = 3.

Cormen, at al. (2009) menuliskan di dalam bukunya, untuk setiap bilangan bulat a dan setiap bilangan bulat positif b, nilai a mod b adalah sisa (residu) dari hasil bagi a / b:

a mod b = a b (a/b), dimana 0 ≤ a mod b<b …...….(2.3) Contohnya adalah 33 mod 5 = 33 – 5(33/5) = 33 – 5(6) = 33 – 30 = 3.

2.1.8. Modulo Eksponensial

Permasalahan pada operasi modulo adalah bagaimana menghitung xy (mod z) dengan z

yang sangat besar. Terdapat beberapa algoritma untuk menghitung modulo eksponensial, antara lain adalah dengan metode iterasi.

Berikur pseudocodedari modulo eksponensial dengan menggunaka metode iterasi :

Function mod exp (x, y, n) z = 1

for (I = 0; I < y; i++){ z = x * z mod n }


(26)

11

return z }

2.1.9. Inversi Modulo

Jika a dan m relatif prima dan m> 1, maka inversi dari a mod m dapat ditemukan. Inversi dari a (mod m), juga disebut inversi perkalian, dimana bilangan bulat a-1

sedemikian sehingga

aa-1≡ 1 (mod m) ………...………(2.4)

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

Tabel 2.1 Penyelesaian contoh soal inversi modulo

a-1 a-1 × 5 (mod 7)

1 5

2 3

3 1

Pada Tabel 1, iterasi berhenti ketika a-1a≡ 1 (mod m) dan diperoleh a-1 = 3.

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

Untuk mengetahui suatu bilangan merupakan elemen primitif atau tidak dapat dilakukan langkah-langkah sebagai berikut :

1. Input bilangan prima aman p ≥ 5.

2. Hitung �= �−1

2


(27)

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.

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

Bilangan prima jumlahnya tak terhingga banyaknya, bilangan prima terbesar yang ditemukan oleh para ahli adalah:

232.582.657-1

Salah satu perhitungan matematis yang digunakan untuk menghasilkan bilangan prima adalah metode Fermat yang dapat dirumuskan sebagai berikut:

Bila p adalah bilangan prima maka berlaku

a p-1 mod p = 1

untuk

1 a < p

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 = 1


(28)

13

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 nilai yang 0.

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.

2.1.12.Algoritma Euclid

Algoritma Euclid dapat dikembangkan (disebut dengan algoritma Extended Euclid) agar dapat menemukan dua integer x dan y yang unik selain nilai GCD(a,b) sehingga memenuhi relasi yang ditunjukkan oleh persamaan (P14) (Harahap, A. A. 2014).

x × a + y × b = GCD(a,b) ……… (2.5) Berikut ini merupakan contoh dari algoritma Extended Euclid. Diketahui GCD(11,23) = 1, dengan mengikuti persamaan (2.3) dan (2.5) maka dapat ditemukan bilangan x dan y dari persamaan 11x + 23y = 1 (Lipschutz & Lipson, 2007). GCD(23,11) = 1 = 23 – 11(2). Dapat dilihat bahwa a = 23, b = 11, x = 1 dan y = -2.

2.2.Algoritma ElGamal

Algoritma ElGamal ditemukan oleh ilmuwan Mesir, yaitu Taher ElGamal pada tahun 1985, merupakan algoritma kriptografi kunci publik. Algoritma ElGamal terdiri atas


(29)

tiga proses, yaitu proses pembentukan kunci, enkripsi, dan dekripsi. Algoritma ElGamal mendasarkan kekuatannya pada fakta matematis kesulitan menghitung logaritma diskret.

Hingga saat ini belum ada yang berhasil memecahkan algoritma ElGamal. Karena kekomplesitasan algoritma ini, maka penyerangan yang dilakukan dari segala sisi tidak mampu menembus pertahanan algoritma ElGamal ini.

2.2.1. Pembangkit Kunci

Langkah-langkah dalam pembangkitan kunci

1. Pilih sembarang bilangan prima p ( p dapat di-share di antara anggota kelompok). Misalkan p = 263

2. Pilih dua buah bilangan acak, g dan x, dengan syarat g <p dan 1 ≤ x p – 2 Misalkan g = 107 dan x = 62

3. Hitung y dengan rumus

y = gxmod p ………... (2.5)

y = 10762mo 263 = 39

Hasil dari algoritma ini:

1. Kunci publik: tripel (y, g, p) = (39, 107, 263) 2. Kunci privat: pasangan (p ,x) = (263,62)

2.2.2. Proses Enkripsi

Langkah-langkah dalam mengenkripsi pesan: 1. Terima kunci publik (y, g, p) = (39, 107, 263)

2. Ubah nilai blok pesan ke dalam nilai ASCII. Ekspresikan pesan P = “A” = 65 (kode ASCII) sebagai bilangan.

3. Pilih bilangan acak k, yang dalam hal ini 1 ≤ k p – 2. Misal, k = 94 4. Setiap blok m dienkripsi dengan rumus


(30)

15

a = 10794mod 263 = 31

b = ykm mod p

b = 3994 65mod263= 113 ………... (2.7) Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.

5. Kirim a = 31 dan b = 113 ke pemilik kunci publik.

2.2.3. Proses Dekripsi

Langkah-langkah dalam mendekripsi pesan: 1. Gunakan kunci privatx untuk menghitung (ax)– 1

(ax)– 1 = ap – 1 – xmod p ………... (2.8) (ax)– 1 = 31263 – 1 – 94mod 263 = 96

2. Hitung plainteks m

m = b(ax)– 1 mod p ……..………... (2.9)

m = 113(96)– 1 mod 263 = 65

3. Konversikan bilangan m ke dalam karakter sesuai dengan kode ASCII


(31)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1.Analisis Sistem

Analisis dan rancangan merupakan tahapan pengembangan sebuah sistem. Tahapan ini akan saling berhubungan dan membentuk suatu siklus. 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

Terdapat beberapa masalah dalam berkomunikasi, seperti ancaman keamanan dalam bertukaran informasi rahasia sehingga memungkinkan informasi yang disampaikan disalahgunakan. Maka untuk menggurangi ancaman ini dapat dilakukan pengkodean terhadap informasi yang berupa pesan dengan menggunakan metode kriptografi ElGamal. Masalah pada penelitian ini secara umum ditunjukkan menggunakan diagram Ishikawa pada Gambar 3.1.

Gambar 3.1 Diagram Ishikawa

Aplikasi Penyandian Pesan

SMS

User Methods

Materials Methods / Tools

Sulit menjaga kerahasiaan pesan SMS

Bahasa pemrograman Java

ElGamal

Menu pembangkit kunci, kirim kunci, pesan masuk, petunjuk, keluar Textbox sebagai penerima input

Texview sebagai penerima output


(32)

17

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 mencangkup karakteristik berikut :

1. Sistem harus mampu melakukan pengiriman SMS melalu platform Android.

2. Sistem harus mampu melakukan membangkitkan kunci dengan algoritma ElGamal.

3. Sistem harus mampu melakukan enkripsi pesan dengan algoritma ElGamal terhadap string pesan yang akan dikirimkan sehingga menghasilkan ciphertext. 4. Sistem harus mampu melakukan dekripsi pesan terhadap ciphertext dengan

algoritma ElGamal sehingga menjadi string yang sama sebelum dikodekan.

3.1.2.2.Kebutuhan NonFungsional

Kebutuhan nonfungsional mencakup karakteristik berikut: 1. Performa

Perangkat lunak yang dibangun dapat menunjukkan hasil dari fungsi kriptografi. 2. Efisiensi

Perangkat lunak yang dibangun harus sesederhana mungkin dan mudah digunakan oleh pengguna(user) dan responsif.

3. Ekonomi

Perangkat lunak yang dibangun harus dapat bekerja dengan baik tanpa harus mengelurkan biaya tambahan dalam penggunaan perangkat keras maupun perankat lunak.


(33)

Perangkat lunak yang dibangun harus dapat menyimpan data hasil enkripsi dan dekripsi pesan.

5. Manajemen kualitas

Perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses pembangkitan kunci yang cepat dan proses enkripsi dan dekripsi yang akurat. 6. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan eror untuk setiap input yang tidak sesuai.

3.2. Pemodelan Aplikasi

Pemodelan aplikasi bertujuan untuk memberikan gambaran terhadap semua kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pada tugas akhir ini pemodelan aplikasi dilakukan dengan membuat use-case diagram dan data flow diagram.

3.2.1. Use-Case Diagram

Use-case diagram digunakan untuk mempermudah proses analisa

komponen-komponen yang berperan dalam sistem yang dirancang. Use-case diagram sistem pada aplikasi yang dirancang dapat dilihat pada gambar 3.2.


(34)

19

Gambar 3.2 Use Case Diagram Pada Sistem

3.2.2. Activity Diagram

Activity diagram adalah diagram aktivitas yang menjelaskan proses kerja dalam

sebuah sistem yang sedang berjalan. Dalam diagram aktivitas ini dijelaskan proses kerja dari sistem pembangkitan kunci, enkripsi dan dekripsi yang dilakukan oleh pengguna.

Membangkitkan Kunci Publik

Menerima SMS

Dekripsi Pesan Pesan Input Kunci

Privat

Input SMS

Input Kunci Publik Enkripsi

Pesan

≪uses

≪uses≫

≪uses≫

≪uses≫

Recipient


(35)

3.2.2.1. Activity Diagram Proses Pembangkitan Kunci

Pengguna Sistem

Gambar 3.3ActivityDiagram Proses Pembangkitan Kunci

Berdasarkan Gambar 3.3 untuk melakukan proses pembangkit kunci, hal pertama yang dilakukan adalah menekan tombol pembangkit kunci, kemudian sistem akan mengacak bilangan prima dan menguji bilangan prima tersebut dengan Fermat’s Little

Theorem. Selanjutny sistem akan mencari nilai x, g,dan y.

Pembangkitan kunci

Mencari bilangan prima dan mengujinya dengan Fermat’s Litte Theorem

Menentukan x dan g

Menampilkan nilai kunci publik dan


(36)

21

3.2.2.2.Activity Diagram Proses Enkripsi Pesan

Pengirim Sistem

Gambar 3.4ActivityDiagram Proses Enkripsi Pesan

Berdasarkan Gambar3.4 untuk melakukan proses enkripsi pesan, hal pertama yang dilakukan adalah menginput pesan SMS, kemudian sistem akan mengubah pesan kedalam integer berdasarkan table ASCII. Setelah itu masukkan kunci publik yang akan digunakan untuk melakukan enkripsi. Sistem akan memproses plainteks yang telah diinput menjadi cipherteks yang siap untuk dikirim kepada penerima.

Input Pesan (String)

Mengubah pesan string menjadi integer berdasarkan table ASCII

Proses Enkripsi Pesan

Menampilkan cipherteks Input Kunci Publik


(37)

3.2.2.3.Activity Diagram Proses Dekripsi Pesan

Penerima Sistem

Gambar 3.5ActivityDiagram Proses Dekripsi Pesan

Berdasarkan Gambar 3.5 untuk melakukan proses dekripsi terhadap cipherteks yang diterima userharus memasukkan kunci rahasia. Setelah itu sistem akan melakukan proses dekripsi terhadap cipherteks tersebut, sehingga akan menghasilkan plainteks yang akan langsung ditampilkan oleh sistem. Maka penerima akan mengerti isi pesan yang diterima dari pengirim.

Menerima Cipherteks

Dekripsi pesan dengan Algoritma ElGamal

Menghitung z=ap-1-xmod p

m=b.z mod p

Mengubah mnkarakter ke

dalam palinteks

Menampilkan nilai kunci publik dan

kunci rahasia Input Kunci Rahasia


(38)

23

3.3. Perancangan Sistem

3.3.1. Pembuatan Algoritma Program

Pembuatan algoritma program adalah proses penerjemahan langkah-langkah algoritma ElGamal ke dalam sebuah bahasa pemrograman. Tahap-tahap yang dilalui dalam proses pembuatan algoritma program yaitu:

1. Pembuatan alur sistemsecara umum

2. Pembuatan alur sistem proses pembangkitan kunci, proses enkripsi, dan dekripsi dengan menggunakan algoritma ElGamal ke dalam bahasa pemrograman Java.

3.3.2. Alur Proses Sistem Secara Umum

Alur proses sistem secara umum dibagi menjadi tiga yaitu proses pembangkitan kunci yang akan menghasilkan kunci publik dan kunci rahasia, proses enkripsi yang akan menghasilkan cipherteks, dan proses dekripsi yang akan mengembalikan cipherteks menjadi plainteks. Proses secara keseluruhan dapat dilihat pada flowchart gambaran umum sistem pada gambar 3.6.


(39)

Gambar 3.6Flowchart Gambaran Umum Sistem

3.3.3. Alur Proses Pembangkitan Kunci

Pada agoritma ElGamal proses pembangkitan kunci dapat dijelaskan sebagai berikut :

4. Pilih sembarang bilangan prima p acak yang besar. Misal p = 421 5. Uji keprimaan dengan Fermat’s Little Theorema.

Bila p = 421

Maka 1 ≤a< 421, didapat a = {1, …, 420}

a p-1mod p

Stop Bangkitkan

kunci

Kunci Publik Kunci Rahasia

Input Nomor Tujuan Input Kunci Publik

Penerima Input SMS Enkripsi SMS Cipherteks KirimSMS Mulai

Menu Pembangkit kunci

Buat SMS

Kotak

Masuk Informasi

Pilih SMS Masukkan Kunci Rahasia Dekripsi SMS Dekripsi Pesan Plainteks Menampilkan Halaman Informasi

Tidak Tidak Tidak Tidak

Tidak Ya Ya Ya Ya Ya Ya Tidak


(40)

25

20421-1 mod 421 = 20420mod 421 = 1 3004-1 mod 421 = 30420mod 421 = 1 400421-1 mod 421 = 400420mod 421 = 1

6. Pilih dua buah bilangan acakg dan x, dengan syarat g <p dan 1 ≤ x p – 2 Misalnya g = 2 dan x = 162

7. Kemudian hitungy dengan persamaany = gxmod p y = 2162 mod 421

y = 394

Hasil dari algoritma ini adalah kunci publik: tripel (y, g, p) yaitu (421, 2, 394)yang dapat diumumkan ke publik dan kunci privat: pasangan (p,x) yaitu (421, 162) yang harus dirahasiakan. Alur proses pembangkitan kunci dapat dijelaskan pada flowchart

seperti Gambar 3.7.


(41)

3.3.4. Alur Proses Enkripsi

Langkah-langkah dalam mengenkripsi pesan sebagai berikut : 6. Ketahui kunci publik (y, g, p) dari pengirim.

7. Ubah nilai blok pesan ke dalam nilai ASCII.

8. Pilih bilangan acak k, yang dalam hal ini 1 ≤ k p – 2.

9. Setiap blok m dienkripsi dengan persamaan a = gkmod p dan b = ykm mod p

Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.

10.Kirim a dan b ke pemilik kunci publik.

Ani memperoleh kunci publik (p, g, y) =(421, 2, 394) dari Budi untuk mengirimkan SMS berisi pesan rahasia “ILKOM13” kepada Budi. Selanjutnya Ani melakukan proses enkripsi yang dapat diliahat pada tabel 3.1 sebagai berikut :

Tabel 3.1 Proses Enkripsi

i mi Ki a = g

k

mod p

a = 2kimod 421

b = ykm mod p b = 394kim mod 421

1 73 351 42 134

2 76 260 109 227

3 75 199 325 282

4 79 41 244 166

5 77 301 73 107

6 49 175 262 372

7 51 267 59 60

Berdasarkan tabel 3.1 diperoleh cipherteks (a, b),I = 1,2,…,7 sebagai berikut : 42 134 109 227 325 282 244 166 73 107 262 372 59 60.

Selanjutnya Ani mengirimkan SMS yang berupa cipherteks ini kepada Budi.

Alur proses enkripsi menggunakan algoritma ElGamal pada aplikasi yang dirancang dapat dijelaskan pada flowchart seperti Gambar 3.8.


(42)

27

Gambar 3.8Flowchart Proses Enkripsi

3.3.5. Alur Proses Dekripsi

Langkah-langkah dalam mendekripsi pesan:

4. Gunakan kunci privat x untuk menghitung (ax)– 1 = ap – 1 – xmod p

5. Hitung plainteks mdengan persamaanm = b(ax)– 1 mod p

6. Konversikan bilangan m ke dalam karakter sesuai dengan kode ASCII.

Budi telah menerimaSMS yang berisi cipherteks dari Ani. Untuk mengetahui pesan asli dari SMS tersebut Ani melakukan proses dekripsi dengan kunci privat (p, x) =

(421, 162) yang dapat dilihat pada tabel 3.2 berikut ini.

Tabel 3.2 Proses Dekripsi

i a b (ax)– 1 = ap – 1 – xmod p m = b(ax)– 1 mod p m

1 42 134 343 73 I

2 109 227 247 76 L

3 325 282 372 75 K

4 244 166 353 79 O

5 73 107 44 77 M

6 262 372 420 49 1

7 59 60 64 51 3

Mulai

Input plainteks (m) Kunci Publik (g,p,y)

Mengkonversi pesan (m) ke karakter

Memilih k∈ {0,1,…,p-2}

Cipherteks


(43)

Berdasarkan perhitungan pada Tabel 3.2, Budi mengetahui isi SMS yang dikirim oleh Ani, yaitu “ILKOM13”.

Alur proses dekripsi menggunakan algoritma ElGamal pada aplikasi yang dirancang dapat dijelaskan pada flowchart seperti Gambar 3.9.

Gambar 3.9Flowchart Proses Dekripsi

3.4. Perancangan Antarmuka (Interface)

Perancangan Antarmuka (Interface) merupakan sarana interaksi antara pengguna dan

sistem. Hal ini berfungsi untuk memudahkan pengguna dalam melakukan proses sistem.

Mulai

Terima Cipherteks

Input Kunci Rahasia (p,x)

Dekripsi pesan (ax)– 1 = ap – 1 – xmod p

m = b(ax)– 1 mod p

Mengkonversi pesan (m)

ke table karakter

Pesan Asli


(44)

29

3.4.1. Rancangan Halaman Utama

Halaman utama adalah halaman yang akan ditampilkan ketika pertama kali aplikasi dijalankan. Halaman ini memiliki empat tombol, yaitu Key Generator, New Message,

Messaging dan Information. Rancangan tampilan halaman tersebut dapat dilihat pada

Gambar 3.10.

Gambar 3.10 Rancangan Antarmuka Halaman Utama

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Tombol untuk membangkitkan kunci. 3. Tombol untuk membuat pesan baru.

4. Tombol untuk menampilkan pesan masuk dan pesan terkirim. 5. Tombol untuk menampilkan halaman informasi aplikasi 6. Tombol untuk keluar aplikasi.

3.4.2. Rancangan Halaman Pembangkit Kunci

Rancangan halaman Pembangkit kunciberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.11.

ElGamal Crypto SMS(1)

Petunjuk(5)

Pesan Masuk(4)

Buat Pesan(3)

Pembangkit Kunci(2)


(45)

ElGamal Crypto SMS (1)

Gambar 3.11 Rancangan Antarmuka HalamanPembangkit Kunci

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Buttonyang berfungsi untuk membangkitkan kunci.

3. Text View yang berfungsi untuk menampilkan kunci rahasia (p,x).

4. Text View yang berfungsi untuk menampilkan kunci publik (p,g,y).

5. Button yang berfungsi untuk mengirim kunci publik.

3.4.3. Rancangan Halaman Kirim Kunci

Rancangan halaman kirim knci publikberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.12.

Button (2)

Text View(3)

Text View(4)


(46)

31

ElGamal Crypto SMS (1)

Gambar 3.12 Rancangan Antarmuka Halaman Kirim Kunci Publik

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan.

3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat telepon.

4. Text Box yang berisi kunci publik yang sudah dibangkitkan.

5. Tombol yang berfungsi untuk mengirim pesan.

3.4.4. Rancangan Halaman Buat Pesan Baru

Rancangan halaman untuk buat pesan baru berguna untuk membuat pesan baru sekaligus enkripsi pesan dengan terlebih dahulu memasukkan nomor telepon penerima dan kunci publik penerima yamg telah diketahui. Rancangan tampilanya dapat dilihat pada gambar 3.13

Text Box(2) (3)

Text Box(4) send (5)


(47)

ElGamal Crypto SMS (1)

Gambar 3.13 Rancangan Antarmuka Halaman Buat Pesan Baru

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan.

3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat telepon.

4. Text Box yang berfungsi untuk menginput pesan.

5. Text Box yang berfungsi untuk memasukkan nilai p sebagai kunci publik.

6. Text Box yang berfungsi untuk memasukkan nilai g sebagai kunci publik.

7. Text Box yang berfungsi untuk memasukkan nilai y sebagai kunci publik.

8. Tombol untuk melakukan enkripsi pesan. 9. Tombol untuk mengirim pesan.

3.4.5. Rancangan Halaman Pesan Masuk

Rancangan Halaman pesan masukberfungsi untuk menampilkan pesan masuk dan pesan terkirim. Rancangan tampilanya dapat dilihat pada gambar 3.14.

Text Box(2)

p :(5)

g :(6)

y :(7)

(3)

Text Box(4)

encrypt(8)


(48)

33

ElGamal Crypto SMS (1)

Pengirim(2)

Isi Pesan (3)

Pengirim Isi Pesan Pengirim Isi Pesan Pengirim Isi Pesan

Gambar 3.14 Rancangan Antarmuka Halaman Pesan Masuk

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Caption untuk menampikan pengirim pesan.

3. Caption untuk menampikan highlight isi pesan.

3.4.6. Rancangan Halaman Dekripsi Pesan

Rancangan Halaman Messaging berfungsi untuk menampilkan pesan masuk sekaligus dekripsi pesan dengan terlebih dahulu memasukkan kunci rahasia. Rancangan halamam pesan masuk dapat dilihat pada gambar 3.15.

ElGamal Crypto SMS (1)

Caption(2)

Text View(3)


(49)

Gambar 3.15 Rancangan Antarmuka Halaman Pesan Masuk

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Caption yang berfungsi menampilkam nama pengirim pesan.

3. Text View yang berfungsi menampilkan isi pesan yang diterima.

4. Text Box yang berfunsi untuk mengimput nilai p sebagai kunci rahasia.

5. Text Box yang berfunsi untuk mengimput nilai x sebagai kunci rahasia.

6. Tombol yang digunakan untuk melakukan dekripsi pesan.

3.4.7. Rancangan HalamanPetunjuk

Rancangan Halaman petunjukberfungsi untuk menampilkan keterangan dan penggunaan apliksi. Rancangan halamam ini dapat dilihat pada gambar 3.16.

ElGamal Crypto SMS (1)

Gambar 3.16 Rancangan Antarmuka Halaman Petunjuk

Keterangan:

1. Label yang menampilkan judul aplikasi.

2. Text View yang berfungsi menampilkan keterangan dan petunjuk penggunaa

aplikasi.


(50)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Program yang dibangun pada tugas akhir ini menggunakan bahasa pemrograman Java dengan menggunakan editor Eclipse IDE versi 21.1.0. Aplikasi memungkinkan untuk dijalankan pada perangkat Android dengan versi minimum 2.2 (Frozen Yoghurt). Proses implementasi sistem pada aplikasi yang dirancang dibagi menjadi dua, yaitu: 1. Implementasi proses pembangkit kunci yang menggunakan fermat’s little theorem

sebagai penguji bilangan prima.

2. Implementasi proses enkripsi dan dekripsi pesan yang menggunakan Algoritma ElGamal.

4.1.1Implementasi Pengujian Aplikasi

Ketika aplikasi telah dipasang pada perangkat android, maka akan tamil icon pada app

drawer di sistem android. Aplikasi ini bernama ElGamalKripto. Tampilannya dapat

dilihat pada Gambar 4.1.


(51)

Gambar 4.1 Tampilan icon aplikasi pada app drawer

Ketika aplikasi dijalankan, sistem akan mengantarkan ke menu utama yang berisi tombol pembangkit kunci, buat pesan baru, kotak masuk, petunjuk, dan tombol keluar. Hal ini dapat dilihat secara jelas pada Gambar 4.2


(52)

37

Apabila user memilih pembangkit kunci, maka akan muncul halaman baru yang teridri dari tombol bangkitkan kunci untuk membangkitkan kunci yang dilakukan oleh sistem, dan tombol kirim yang berfungsi untuk mengirim kunci publk. Untuk lebih jelasnya dapat dilihat pada Gambar 4.3. Jika user memilih tombol buat pesan maka akan muncul halaman bsru dimana user dapat melakukan proses enkripsi dan mengirim pesan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.5. Jika user memilih tombol pesan masuk maka akan muncul halama baru yang memungkinkan

user dapat membaca pesan masuk dan melakukan dkripsi pesan. Untuk lebih jelasnya

dapat dilihat pada Gambar 4.7. Jika user memilih tombol petunjuk maka akan munul halaman baru yang menampilkan informasi mengenai aplikasi dan penggunannya. Untuk lebih jelasnya dapat dilihat pada Gambar 4.9. Jika user memilih tombol keluar maka akan keluar dari aplikasi.

Gambar 4.3 Tampilan halaman pembangkit kunci

Untuk membangkitkan kunci user harus menekan tombol bangkitkan kunci, sistem akan menampilkan kunci publik dan kunci rahasia yang akan digunakan untuk proses enkripsi dan dekripsi. Jika user menekan tombol kirim maka akan tampil halaman baru untuk mengirim kunci publik. Untuk lebih jelasnya dapat dilihat pada gambar 4.4.


(53)

Gambar 4.4Tampilan halaman kirim kunci publik

Tampilan halaman buat pesan baru berisi tombol kontak untuk menginput nomor penerima yang sebelumnya sudah tersimpan pada perangkat Android. Tombol enkrip yang berfungsi untuk melakukan proses enkripsi yang terlebih dahulu user

memasukkkan nilai p, g, dan y sebagai kunci publik dengn benar. User dapat mengirim pesan dengan menekan tombol kirim. User dapat melakukan analisa enkripsi dengan melihat tampilan message box. Untuk lebih jelasnya dapat dilihat pada Gambar 4.5. dan Gambar 4.6.


(54)

39

Gambar 4.6 Tampilan halaman proses enkripsi

Tampilan halaman pesan masuk berisi pesan yang diterima dan tombol dekrip. Untuk melakukan dekripsi user harus memasukan kunci publik p dan x dengan benar lalu menekan tombol dekrip. Untuk menganalisa proses dekripsi user dapat melihat

message box yang ditampilkan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.7

dan Gambar 4.8.


(55)

Gambar 4.8 Tampilan halaman proses dekripsi

Gambar 4.9 Tampilan halaman petunjuk

4.2 Pengujian

4.2.1 Pengujian dan Analisis Hasil Enkripsi dan Dekripsi

Adapun tujuan dari pengujian ini ialah untuk mengetahui parameter-parameter pengukuran efektifitas algoritma enkripsi yaitu panjang karakter sebelum atau sesudah di enkripsi. Perbandingan parameter yang di amati tersebut dapat di lihat pada Tabel 4.1.


(56)

41

Tabel 4.1Panjang Plainteks dan Panjang Cipherteks yang dihasilkan dalam proses enkripsimenggunakan algortma ElGamal.

Panjang Maksimum Kunci Publik (digit)

Panjang Plainteks (karakter)

Panjang Ciperteks (karakter)

3 14 99

4 14 125

3 43 315

4 43 343

3 65 456

4 65 630

3 100 770

4 100 969

3 120 933

4 120 1163

Berdasarkan Tabel 4.3 dapat kita lihat bahwa panjang karakter cipherteks yang dihasilkan dari proses enkripsi lebih besar dari plainteksnya.

Dari Tabel 4.3 dapat dibuat grafik perbandingan hasil pengujian antara ukuran file plainteks dan cipherteks seperti gambar 4.10 beikut.

Gambar 4.10 0 500 1000 1500 2000 2500

14 43 65 100 120

ci p h er tek s plainteks

4 digit p


(57)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem, maka didapat kesimpulan sebagai berikut:

1. Panjang karakter cipherteks yang dihasilkan dengan algoritma ElGamal dengan kunci publik maksimal 32 bit adalah tujuh kali lipat sampai sepuluh kali lipat dari panjang plainteks.lebih besar dari cipherteksnya.

2. Pengujian bilangan prima menggunakan Fermat’s Little Theorema dinilai cukup baik karena menghasilkan kunci prima yang lebih besar dari 255 sehingga memiliki kelebihan dari tingkat keamanan data. Namun pengujian bilangan prima menggunakan Fermat’s Little Theoremamemiliki kelemahan yaitu lambat dalam proses enkripsi karena menggunakan bilangan prima yang besar.

5.2. Saran

Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut:

1. Untuk algoritma ElGamal yang di gunakan pada aplikasi ini, panjang maksimal kunci publik yang digunakan adalah 32 bit.Selanjutnya dapat digunakan kunci publik 64 bit.

2. Aplikasi ini hanya dapat dijalankan pada perangkat mobile yang memiliki sistem operasi Android. Sehingga untuk pengembangan selanjutnya jika memungkinkan dapat di gunakan lintas platform, misalnya untuk Sistem Operasi iOS, Windows

phone, Symbian dan sejenisnya.

3. Kombinasi dua algoritma atau lebih dapat dilakukan sebagai salah satu solusi untuk meningkatkan keamanan pesan.


(58)

43

4. Perlu dilakukan penelitian yang lebih lanjut dalam bentuk plainteks yang berbeda, seperti gambar, suara, dan video.


(59)

Daftar Pustaka

Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi.

Bandung: Informatika.

Mollin, R. A. 2007. An Introduction to Cryptography. Edisi ke-2. Florida: Chapman & Hall/CRC.

Ariyus, D. 2008. Pengantar Ilmu Kriptografi. Yogyakarta: ANDI.

Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. Indonesia: SPK IT Consulting.

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam

Bahasa Java. Yogyakarta: ANDI.

Haq, H. A. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi Algoritma Kriptografi. Skripsi. Universitas Sumatera Utara.

Harahap, A. A. 2014.Implementasi Sistem Keamanan Data MenggunakanSteganografi Teknik Pemetaan Titik HitamDengan Pencarian SekuensialDan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.

Nasution, L. A. 2014. Implementasi Kombinasi Kriptografi Algoritma ElGamal dengan Steganografi Least Significant Bit (LSB) berdasarkan Penyisipan Menggunakan Fungsi Linear. Skripsi. Universitas Sumatera Utara.

Nasution, R. N. 2014. Implementasi Algoritma Hill Cipher Dan Rsa Pada Enkripsi Hybrid Pesan Sms Di Android. Skripsi. Universitas Sumatera Utara.

Nazaruddin, S. H. 2014. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC

Berbasis Android.Bandung: INFORMATIKA.

Wijayanti, R. Y. 2013. Analisis Dan Perbandingan Penggunaan Metode Pembangkitan Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal. Skripsi. Universitas Sumatera Utara.


(1)

39

Gambar 4.6 Tampilan halaman proses enkripsi

Tampilan halaman pesan masuk berisi pesan yang diterima dan tombol dekrip. Untuk melakukan dekripsi user harus memasukan kunci publik p dan x dengan benar lalu menekan tombol dekrip. Untuk menganalisa proses dekripsi user dapat melihat message box yang ditampilkan. Untuk lebih jelasnya dapat dilihat pada Gambar 4.7 dan Gambar 4.8.


(2)

Gambar 4.8 Tampilan halaman proses dekripsi

Gambar 4.9 Tampilan halaman petunjuk

4.2 Pengujian

4.2.1 Pengujian dan Analisis Hasil Enkripsi dan Dekripsi

Adapun tujuan dari pengujian ini ialah untuk mengetahui parameter-parameter pengukuran efektifitas algoritma enkripsi yaitu panjang karakter sebelum atau sesudah di enkripsi. Perbandingan parameter yang di amati tersebut dapat di lihat pada Tabel 4.1.


(3)

41

Tabel 4.1Panjang Plainteks dan Panjang Cipherteks yang dihasilkan dalam proses enkripsimenggunakan algortma ElGamal.

Panjang Maksimum Kunci Publik (digit)

Panjang Plainteks (karakter)

Panjang Ciperteks (karakter)

3 14 99

4 14 125

3 43 315

4 43 343

3 65 456

4 65 630

3 100 770

4 100 969

3 120 933

4 120 1163

Berdasarkan Tabel 4.3 dapat kita lihat bahwa panjang karakter cipherteks yang dihasilkan dari proses enkripsi lebih besar dari plainteksnya.

Dari Tabel 4.3 dapat dibuat grafik perbandingan hasil pengujian antara ukuran file plainteks dan cipherteks seperti gambar 4.10 beikut.

Gambar 4.10 0 500 1000 1500 2000 2500

14 43 65 100 120

ci p h er tek s plainteks

4 digit p 3 digit p


(4)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem, maka didapat kesimpulan sebagai berikut:

1. Panjang karakter cipherteks yang dihasilkan dengan algoritma ElGamal dengan kunci publik maksimal 32 bit adalah tujuh kali lipat sampai sepuluh kali lipat dari panjang plainteks.lebih besar dari cipherteksnya.

2. Pengujian bilangan prima menggunakan Fermat’s Little Theorema dinilai cukup baik karena menghasilkan kunci prima yang lebih besar dari 255 sehingga memiliki kelebihan dari tingkat keamanan data. Namun pengujian bilangan prima menggunakan Fermat’s Little Theoremamemiliki kelemahan yaitu lambat dalam proses enkripsi karena menggunakan bilangan prima yang besar.

5.2. Saran

Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut:

1. Untuk algoritma ElGamal yang di gunakan pada aplikasi ini, panjang maksimal kunci publik yang digunakan adalah 32 bit.Selanjutnya dapat digunakan kunci publik 64 bit.

2. Aplikasi ini hanya dapat dijalankan pada perangkat mobile yang memiliki sistem operasi Android. Sehingga untuk pengembangan selanjutnya jika memungkinkan dapat di gunakan lintas platform, misalnya untuk Sistem Operasi iOS, Windows phone, Symbian dan sejenisnya.

3. Kombinasi dua algoritma atau lebih dapat dilakukan sebagai salah satu solusi untuk meningkatkan keamanan pesan.


(5)

43

4. Perlu dilakukan penelitian yang lebih lanjut dalam bentuk plainteks yang berbeda, seperti gambar, suara, dan video.


(6)

Daftar Pustaka

Kurniawan, Y. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Bandung: Informatika.

Mollin, R. A. 2007. An Introduction to Cryptography. Edisi ke-2. Florida: Chapman & Hall/CRC.

Ariyus, D. 2008. Pengantar Ilmu Kriptografi. Yogyakarta: ANDI.

Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. Indonesia: SPK IT Consulting.

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Yogyakarta: ANDI.

Haq, H. A. 2013. Kombinasi Algoritma RSA dan ElGamal dalam Implementasi Algoritma Kriptografi. Skripsi. Universitas Sumatera Utara.

Harahap, A. A. 2014.Implementasi Sistem Keamanan Data MenggunakanSteganografi Teknik Pemetaan Titik HitamDengan Pencarian SekuensialDan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.

Nasution, L. A. 2014. Implementasi Kombinasi Kriptografi Algoritma ElGamal dengan Steganografi Least Significant Bit (LSB) berdasarkan Penyisipan Menggunakan Fungsi Linear. Skripsi. Universitas Sumatera Utara.

Nasution, R. N. 2014. Implementasi Algoritma Hill Cipher Dan Rsa Pada Enkripsi Hybrid Pesan Sms Di Android. Skripsi. Universitas Sumatera Utara.

Nazaruddin, S. H. 2014. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.Bandung: INFORMATIKA.

Wijayanti, R. Y. 2013. Analisis Dan Perbandingan Penggunaan Metode Pembangkitan Bilangan Prima Fermat Dan Lucas-Lehmer Dalam Kriptografi Elgamal. Skripsi. Universitas Sumatera Utara.