Implementasi Algoritma Elgamal Untuk Keamanan Sms Pada Android

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.

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.

User

Methods

ElGamal
Sulit menjaga
kerahasiaan pesan SMS

Bahasa pemrograman Java

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

Methods / Tools


Materials

Gambar 3.1 Diagram Ishikawa

Aplikasi
Penyandian Pesan
SMS

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.
4. Dokumentasi

18

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 komponenkomponen yang berperan dalam sistem yang dirancang. Use-case diagram sistem
pada aplikasi yang dirancang dapat dilihat pada gambar 3.2.

19

Membangkitkan
Kunci Publik

Menerima
SMS

≪ uses ≫

Input Kunci
Privat

Recipient


≪ uses ≫

Dekripsi
Pesan Pesan

Input SMS

≪ uses ≫

Enkripsi
Pesan

≪ uses ≫

Input Kunci
Publik

Sender


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.

20

3.2.2.1. Activity Diagram Proses Pembangkitan Kunci

Pengguna

Pembangkitan
kunci

Sistem
Mencari bilangan prima

dan mengujinya dengan
Fermat’s Litte Theorem

Menentukan x dan g

Menampilkan nilai
kunci publik dan
kunci rahasia

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.

21

3.2.2.2.Activity Diagram Proses Enkripsi Pesan


Pengirim

Input Pesan (String)

Sistem

Mengubah pesan string
menjadi integer
berdasarkan table ASCII

Input Kunci Publik
Proses Enkripsi Pesan

Mengirim Cipherteks

Menampilkan
cipherteks

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.

22

3.2.2.3.Activity Diagram Proses Dekripsi Pesan

Penerima

Sistem

Menerima Cipherteks

Input Kunci Rahasia

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

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.

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.

24

Mulai

Tidak

Menu

Ya

Tidak

Pembangkit
kunci

Buat
SMS

Ya

Bangkitkan
kunci

Tidak

Kotak
Masuk

Ya

Tidak

Ya

Input Nomor Tujuan
Input Kunci Publik
Penerima

Informasi

Tidak

Ya

Pilih SMS

Tidak

Input SMS

Dekripsi
Pesan

Menampilkan
Halaman
Informasi

Ya

Enkripsi SMS

Masukkan
Kunci Rahasia

Kunci Publik
Kunci Rahasia
Cipherteks

Dekripsi SMS

KirimSMS

Plainteks

Stop

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

mod p

25

421-1

20

4-1

300

420

mod 421 = 20

420

mod 421 = 30

421-1

400

mod 421 = 1

mod 421 = 1
420

mod 421 = 400 mod 421 = 1

6. Pilih dua buah bilangan acakg dan x, dengan syarat g 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.

10

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