You are on page 1of 39

1.

Latar Belakang

Banyak fitur-fitur yang disediakan oleh Android sebagai sistem operasi telepon
selular (ponsel) seperti pemutaran video, push mail, mengakses layanan internet dan
sebagainya. Akan tetapi, fitur-fitur yang digunakan pada ponsel biasa lainnya yaitu seperti
Short Message Service (SMS), call dan Multimedia Message Service (MMS) masih dapat
digunakan pada perangkat android tersebut. Salah satu yang masih banyak digunakan yaitu
SMS.
Layanan SMS yang menggunakan aplikasi SMS bawaan ponsel masih banyak
digunakan oleh setiap orang, dan bukan merupakan jalur yang aman dalam pertukaran
informasi, terlebih jika informasi yang sifatnya penting atau rahasia seperti password, nomor
pin, atau rahasia perusahaan yang tidak boleh diketahui oleh orang yang tidak berhak. SMS
pada awalnya dirancang untuk komunikasi tidak sinkron dimana pesan yang dikirimkan
adalah plaintext. Data plaintext seperti ini dapat dicegat di jalan oleh siapa saja yang
memiliki akses ke sistem SMS. Short Message Service Center (SMSC) milik operator
merupakan salah satu pihak yang dapat mengambil data ini, walaupun dalam setiap
perjanjian terdapat klausul tentang kerahasiaan data, akan tetapi data plaintext yang terkirim
dan berkasnya tersimpan di berbagai tempat baik di server milik operator maupun milik
content provider membawa satu potensi bahaya yang besar. Kelemahan itu dikarenakan SMS
menggunakan standar pengkodingan yang universal, SMS dibangun dengan sistem bahasa
program yang sejenis dengan bahasa program hardware seperti komputer dan telepon selular
dapat menerjemahkan semua data dalam frekuensi tertentu yang terbuka (di udara) yang
sangat rentan akan ancaman seperti penyadapan pihak yang tak bertanggung jawab.
Kemudahan dalam bertukar informasi melalui SMS ini disalahgunakan oleh beberapa pihak.
Beberapa orang dengan berbagai cara mencoba mencuri informasi yang bukan hak mereka.
Salah satu contoh kasus penyadapan SMS tahun 2007 yang menimpa seorang wartawan

1
yang bernama Metta Dharmasaputra yang bukan seorang pelaku tindak pidana, teroris, dan
pengedar narkotika (sesuai Nomor 36 Tahun 1999 tentang Telekomunikasi dan Peraturan
Pemerintah Nomor 52 Tahun 2000) ternyata bisa disadap, itu berarti hal serupa bisa terjadi
pada siapa saja. Hal ini tentunya akan sangat berbahaya untuk pengguna, terutama bagi
mereka yang sering mengirimkan data dan informasi penting dan rahasia melalui SMS.
Informasi penting atau rahasia yang dimaksud adalah informasi yang sifatnya positif.
Kriptografi merupakan salah satu cara dalam mengamankan pesan, karena kriptografi
adalah ilmu yang mempelajari tentang penyembunyian huruf atau tulisan juga dapat disebut
sebagai bahasa persandian. Dalam pembangunan aplikasi kemanan SMS ini menggunakan
algoritma RSA, hal ini karena pada umumnya algoritma lain seperti blowfish, chiper cigne ,
dll. hanya menggunakan satu kunci untuk menterjemahkan isi pesan yang sudah disandikan
(chipertext) menjadi pesan yang dapat dibaca (plaintext), tetapi dengan algoritma RSA proses
menyandikan pesan bisa dibilang menggunakan 2 kunci dalam menyandikan atau
menterjemahkan pesan yaitu publik key yang berfungsi sebagai menyandikan pesan dan
private key sebagai menterjemahkan pesan yang disandikan.
Berdasarkan uraian diatas, diperlukan suatu metode dan aplikasi untuk mengamankan
pesan SMS. Oleh karena itu penulis tertarik untuk membuat tugas akhir ini dengan judul
Pembangunan Aplikasi Keamanan SMS Menggunakan Algoritma RSA Berbasis
Mobile Pada Platform Android.

2. Pokok Permasalahan

3. Teori Algoritma
Landasan teori menjelaskan dasar-dasar teori yang digunakan dalam penelitian yang
dulakukan pada tugas akhir ini.

1. Kriptografi

Kriptografi berasal dari kata Yunani, yaitu Crypto yang berarti rahasia dan Grapho yang
berarti menulis. Menurut (Schneier , 1996 ) secara umum Kriptografi adalah ilmu dan seni
untuk menjaga keamanan pesan (Cryptography is the art and science of keeping messages
secure). Menurut (Menezes, 1996) sebagai pembanding, terdapat pula definisi yang berbeda,
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan
dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Kata
seni di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal
sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan
pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi
sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri
sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata graphy di
dalam cryptography itu sendiri sudah menyiratkan sebuah seni).
Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun
yang lalu oleh raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia pada
panglima perangnya melalui kurir-kurirnya. Orang yang melakukan penyandian ini disebut
Cryptographer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau
memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut
kriptanalis.
Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju
arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus
diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma
kriptografi berkembang cukup pesat pada saat perang dunia I dan perang dunia ke II.
Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan
dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada perang
dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada perang dunia II, Typex
oleh Inggris, dan Purple oleh Jepang. Selain itu jerman juga mempunyai mesin legendaris
yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalamn peperangan
yaitu, Enigma [8].
Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengelolah data atau
pesan yang akan disampaikan, yang penting, algoritma tersebut memiliki 4 persyaratan
berikut [8]:
1. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh dua pihak kewenangan.
2. Autentifikasi. Pengirim pesan harus dapat diindentifikasi dengan pasti, penyusup harus
dipastikan tidak bisa berpura pura menjadi orang lain.
3. Integritas. Penerima Pesan harus dapat memastikan bahwa pesan yang dia terima tidak
dimodifikasi ketika dalam melakukan proses transmisi data.
4. Non Repudiation. Pengirim pesan harus tidak bisa menyangkal pesan yang dia kirim.

2. Sistem Kriptografi
Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi.
Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan rahasia (ciphertext).
Ciphertext inilah yang nantinya akan dikirimkan melalui saluran komunikasi terbuka. Pada
saat ciphertext diterima oleh penerima pesan, maka pesan rahasia tersebut diubah lagi
menjadi pesan terbuka melalui proses dekripsi sehingga pesan tadi dapat dibaca kembali oleh
penerima pesan.
Menurut (Sadikin, 2012) secara umum, proses enkripsi dan dekripsi dapat dilihat pada
gambar II.1 [8]:

Gambar Proses Enkripsi dan Dekripsi

Dalam sistem komputer, pesan terbuka (plaintext) diberi lambang M, yang merupakan
singkatan dari message. Plaintext ini dapat berupa tulisan, foto, atau video yang berbentuk
data biner. Plaintext inilah yan nantinya akan dienkripsi menjadi pesan rahasia atau
ciphertext yang dilambangkan dengan C (ciphertext).
Secara matematis, fungsi enkripsi ini dinotasikan dengan :
E(M)=C

Sedangkan fungsi deskripsi adalah proses pengembalian dari chiphertext menjadi plaintext
kembali, secara matematis dinotasikan sebagai berikut :
D(C)=M
D(E(M))=M

3. Kriptografi Kunci Rahasia dan Kunci Publik


Menurut (Sadikin, 2012) pada dasarnya terdapat dua jenis algoritma kriptografi berdasarkan
kunci yang digunakan. Pertama adalah kriptografi dengan mengunakan secret key dan yang
kedua adalah kriptografi yang menggunakan public key. Public key menggunakan dua kunci
yang berbeda dimana satu kunci digunakan untuk melakukan enkripsi dan kunci yang lain
digunakan untuk melakukan dekripsi [8].
3.1 Kriptografi Kunci Rahasia
Kriptografi kunci rahasia atau secret key adalah kriptografi yang hanya melibatkan satu
kunci dalam satu proses enkripsi dan dekripsi. Proses dekripsi dalam kriptografi secret key
ini adalah kebalikan dari proses enkripsi.

Gambar Kriptografi Simetris

Menurut (Chey Cobb, CISSP, 2004) kriptografi secret key seringkali disebut sebagai
kriptografi konvensional atau kriptografi simetris (Symmetric Cryptography) dimana proses
dekripsi adalah kebalikan dari proses enkripsi dan menggunakan kunci yang sama.
Kriptografi simetris dapat dibagi menjadi dua, yaitu penyandian blok (block cipher) dan
penyandian alir (stream cipher) . Penyandian blok bekerja pada suatu data yang terkelompok
menjadi blok-blok data atau kelompok data dengan panjang data yang telah ditentukan. Pada
penyandian blok, data yang masuk akan dipecahpecah menjadi blok data yang telah
ditentukan ukurannya. Penyandian alir bekerja pada suatu data bit tunggal atau terkadang
dalam satu byte. Jadi format data yang mengalami proses enkripsi dan dekripsi adalah berupa
aliran bit-bit data [9].
Algoritma yang ada saat ini kebanyakan bekerja untuk penyandian blok karena kebanyakan
proses pengiriman data pada saat ini menggunakan blok-blok data yang telah ditentukan
ukurannya untuk kemudian dikirim melalui saluran komunikasi [2].

3.2 Kriptografi Kunci Publik


Sistem kriptografi kunci publik atau sering juga disebut sebagai kriptografi kunci asimentrik
pertama kali diusulkan oleh Deffie & Hellman pada tahun 1976 (Deffie & Hellman, 1976).
Ide kriptografi kunci publik sebenarnya mirip dengan cara kerja kunci gembok. Bayangkan
terdapat sebuah peti yang berisi pesan rahasia lalu peti itu dikunci dengan gembok.
Kemudian peti ini dikirim ke penerima yang memiliki kunci untuk membuka gembok.
Penerima dapat membuka gembok apabila kunci yang dipegang olehnya merupakan
pasangan gembok.
Kriptografi kunci publik sering disebut dengan kriptografi asimetris. Berbeda dengan
kriptografi kunci rahasia, kunci yang digunakan pada proses enkripsi dan proses dekripsi
pada kriptografi public key ini berbeda satu sama lain. Jadi dalam kriptografi public key,
suatu key generator akan menghasilkan dua kunci berbeda dimana satu kunci digunakan
untuk melakukan proses enkripsi dan kunci yang lain digunakan untuk melakukan proses
dekripsi.
Kunci yang digunakan untuk melakukan enkripsi akan dipublikasikan kepada umum untuk
dipergunakan secara bebas. Oleh sebab itu, kunci yang digunakan untuk melakukan enkripsi
disebut juga sebagai public key. Sedangkan kunci yang digunakan untuk melakukan dekripsi
akan disimpan oleh pembuat kunci dan tidak akan dipublikasikan kepada umum. Kunci
untuk melakukan dekripsi ini disebut private key.

Gambar Kriptografi Asimetris

Dengan cara demikian, semua orang yang akan mengirimkan pesan kepada pembuat kunci
dapat melakukan proses enkripsi terhadap pesan tersebut, sedangkan proses dekripsi hanya
dilakukan oleh pembuat atau pemilik kunci dekripsi. Dalam kenyataannya, kriptografi
asimetris ini dipakai dalam suatu layanan untuk mengakses suatu server [2].

4. Algoritma RSA

Menurut (Burnett & Paine, 2001) dari sekian banyak metode kriptografi asimetris yang
pernah dibuat, algoritma yang paling popular adalah algoritma RSA. Algoritma RSA
diciptakan oleh 3 orang peneliti dari MIT (Masschussets Institute of Technology) pada tahun
1976, yaitu Ron (R)ivest, Adi (S)hamir dan Leonard (A)dleman. Keamanan algoritma RSA
terletak pada sulitnya menfaktorkan bilangan yang besar menjadi faktor faktor prima.
Penfaktoran dilakukan untuk memperoleh private key. Selama penfaktoran bilangan besar
menjadi bilangan prima belum tentu menemukan algoritma yang benar, maka selama itu pula
keamanan algoritma RSA terjamin [1].
Algoritma RSA memiliki besaran seperti berikut :
1. p dan q bilangan prima (rahasia)
2. n = p.q (tidak rahasia)
3. (n) = (p-1)(q-1) (rahasia)
4. e = kunci enkripsi (tidak rahasia)
5. d = kunci dekripsi (rahasia)
6. m = plaintext (rahasia)
7. c = chipertext (tidak rahasia)

4.1 Perumusan Algoritma RSA


Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa
a (n) = 1 mod n (I) dengan syarat :
1. a harus relatif prima terhadap n
2. (n) = n(1-1/p1) n(1-1/p2) n(1-1/pr) dalam hal ini p1,p2,.pr adalah faktor
prima dari n. (n) adalah fungsi yang menentukan berapa banyak dari bilangan
bilangan 1,2,3,..n yang relatif prima terhadap n.
Berdasarkan sifat ak = ab (mod n) untuk k bilangan bulat 1, maka persamaan (I) dapat
ditulis menjadi

ak(n) = 1k (mod n) atau


ak(n) = 1 (mod n) (II)

Bila a diganti m,maka persamaan (II) dapat ditulis menjadi

mk(n) = 1 (mod n) (III)

Berdasarkan sifat ac = bc (mod n) maka bila persamaan (III) dikali dengan m, maka menjadi

mk(n)+1 = m (mod n) (IV)


yang dalam hal ini m relatif prima dengan n.
Misalkan e dan d dipilih sedemikian sehingga

e . d = 1 (mod (n) ) (V)


atau
e . d = k(n) + 1 (V)

Masukkan (V) ke dalam persamaan (VI) menjadi

me . d = m (mod n) (VI)
Persamaan (VI) dapat ditulis kembali menjadi

(me)d = m (mod n) (VII)

Yang artinya perpangkatan m dengan e diikuti dengan perpangkatan dengan d yang


menghasilkan kembali m semula. Berdasarkan persamaan (VII), maka enkripsi dan dekripsi
dirumuskan sebagai berikut

Ee (m) = c = me mod n (VIII)

Dd(c) = m = cd mod n (IX)

Karena e . d = d . e maka enkripsi dilakukan dengan dekripsi ekivalen dengan dekripsi


diikuti enkripsi

Dd(Ee(m)) = Ee (Dd(m)) = md mod n (X)

Oleh karena md mod n = (m + jn) d mod n untuk sembarang bilangan bulat j, maka setiap
plaintext m, m + n, m + 2n, , menghasilkan chipertext yang sama, Dengan kata lain,
transformasinya dari banyak ke satu, maka m harus dibatasi dalam himpunan {0, 1, 2, n-
1} sehingga enkripsi dan dekripsi tetap benar seperti persamaan (VIII) dan (IX) [1].
4.2. Langkah Kerja Algoritma RSA
Skema algoritma kriptografi kunci publik (asimetris) RSA terdiri dari tiga proses
yaitu pembentukan kunci, proses enkripsi, dan proses dekripsi.

4.3 Algoritma Pembangkit Kunci


Berikut langkah-langkah membangkitkan kunci algoritma RSA :
1. Menentukan 2 buah bilangan prima acak dan dirahasiakan, dimisalkan
kedua bilangan prima tersebut diwakilkan oleh variabel p dan q. Dengan
syarat nilai p nilai q.
Semakin besar bilangan prima p dan q, maka kemungkinan untuk
dilakukannya faktorisasi dengan metode brute force guna mencari nilai p
dan nilai q nantinya akan semakin kecil.
2. Menentukan (RSA) modulus yang berfungsi sebagai salah satu pasangan
kunci publik maupun kunci rahasia. (RSA) modulus di wakilkan dengan
variabel n. Nilai n didapatkan dari perkalian dua buah bilangan prima yang
ditentukan pada langkah sebelumnya, yang diwakilkan oleh variabel p dan
variabel q. Secara sistematis, formula mencari nilai (RSA) modulus adalah
sebagai berikut :
=

3. Langkah selanjutnya adalah menentukan (RSA) enciphering exponent yang


nantinya digunakan sebagai pasangan kunci publik bersama (RSA)
modulus. (RSA) enciphering exponent diwakilkan oleh variabel e. Formula
untuk menentukan nilai e sebagai berikut :

(, ) =

dengan syarat 1 < e < m dan e adalah bilangan prima. gcd adalah akronim
dari greatest common divisor atau faktor persekutuan terbesar (FPB). Bila
gcd atau FPB dari dua buah bilangan prima terhadap nilai m, sehingga nilai
e bisa digunakan untuk menjadi pasangan kunci publik bersama (RSA)
modulus.

Formula penentuan nilai (RSA) enciphering exponent yang disebutkan


sebelumnya hanya bisa dijalankan bila nilai m telah ditentukan.
Formula untuk mencari nilai m sendiri adalah : bernilai = 1, misalnya
gcd(e,m)= 1, artinya nilai e merupakan bilangan yang relatif prima terhadap
nilai m, sehingga nilai e bisa digunakan untuk menjadi pasangan kunci
publik bersama (RSA) modulus.
Formula penentuan nilai (RSA) enciphering exponent yan disebutkan
sebelumnya hanya bisa dijalankan bila nilai m telah ditentukan.
Formula untuk mencari nilai m sendiri adalah :

= ( ) ( )

4. Langkah selanjutnya adalah menentukan nilai (RSA) deciphering exponent


yang diwakilkan oleh variabel (d), (RSA) deciphering exponent berfungsi
sebagai pasangan (RSA) modulus dalam pembentukan kunci rahasia (n,d).
Formula mencari nilai d adalah sebagai berikut :
=

Nilai dari vaiabel e dan variabel m adalah nilai yang didapat dari langkah
sebelumnya dalam pembentukan (RSA) enciphering exponent.
Dengan syarat 1 < d < m.
Dalam praktiknya, rumus baku untuk mencari nilai d diatas dijabarkan lebih lanjut
sebagai berikut :
=
= ( )
= + ( )

= + ( )

Variabel k adalah bilangan integer dengan nilai sembarang yang diharapkan


menghasilkan d yang bernilai integer juga karena nilai d yang akan diambil
jika d = integer.
5. Nilai variabel d, p, q dan m adalah nilai yang harus dirahasiakan. Nilai variabel n, e
adalah nilai yang boleh dipublikasikan.
Pasangan (n,e) merupakan kunci publik yang boleh dipublikasikan Pasangan (n,d)
merupakan kunci rahasia yang harus dirahasiakan.
4. Unfield Modeling Language (UML)

UML menurut Booch (1999: 14) dalam Jurnal Gintoro, Andreyus, Emilia dan Richard
William (2010 , Hal : B-30) adalah sebuah bahasa yang telah menjadi standar dalam industri
untuk menvisualisasi, menspesifikasi, merancang dan mendokumentasi sistem piranti lunak
[13].

Unified Modelling Language (UML) menawarkan sebuah standar untuk merancang model
sebuah sistem. Tujuan UML adalah :

1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif
untuk mengembangkan dan saling menukar model dengan mudah dan
dimengerti secara umum.
2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa
pemrogramandan proses rekayasa. Menyatukan praktik-praktik terbaik yang
terdapat dalam pemodelan.
3. Mentatukan praktik-praktik terbaik yang terdapat dalam pemodelan.

UML menyediakan beberapa notasi dan artifact standard yang bisa digunakan
sebagai alat komunikasi bagi para pelaku dalam proses analisis dan desain.
Artifact didalam UML didefinisikan sebagai informasi dalam bentuk yang
digunakan atau dihasilkan dalam proses pengembangan perangkat. Contohnya
adalah source code yang dihasilkan oleh proses pemrograman.
Terdapat beberapa diagram UML, diantaranya sebagai berikut :

4.1 USE CASE DIAGRAM


Use case diagram digunakan untuk mengetahui apa saja yang dapat
dilakukan oleh pengguna/aktor terhadap fungsionalitas yang terdapat pada aplikasi
yang dibangun. Use case diagram pada aplikasi kemanan SMS terlihat pada
gambar 3.6.
Gambar 3.6 Use Case Diagram Aplikasi Keamanan SMS

Skenario Use Case


Skenario use case merupakan penjelasan secara rinci setiap use case yang terdapat
pada diagram use case. Skenario use case pada aplikasi ini yaitu sebagai berikut:
1. Skenario Make Password

Skenario make password dapat dilihat pada tabel berikut.


Tabel Skenario Buat Password
Use case name Make Password
Actor Sender atau Receiver (User)
Use case Digunakan untuk membuat password yang digunakan
description untuk masuk kembali ke dalam aplikasi sebelum masuk
menu utama aplikasi

Precondition Sistem menampilkan make password


Trigger User menekan button make password
Scenario :
1. User memasukan password.
2. User memasukan konfirmasi password.
3. User menekan button buat password.
4. Sistem menyimpan password ke dalam database.
Exception :
1. User menekan tombol back, buat password dibatalkan.
2. User mengetikan password kurang dari 6 karakter. 3. User
mengetikan konfirmasi password yang salah.

2. Skenario Login

Skenario login dapat dilihat pda tabel berikut.


Tabel Skenario Login
Use case name Login
Actor Sender atau Receiver (User)
Use case Digunakan untuk memasukan password sebelum masuk
description menu utama aplikasi

Precondition Sistem menampilkan form login.


Trigger Sender menekan button login.
Scenario :
1. User memasukan password.
2. User menekan button login.
3. Sistem melakukan proses verifikasi password.
Exception :
1. User menekan tombol back, login dibatalkan.
2. User salah memasukan password.

3. Skenario Generate Key

Skenario generate key dapat dilihat pada tabel berikut.


Tabel Skenario Generate Key
Use case name Get Key
Actor Sender
Use case
Digunakan untuk membangkitkan pasangan kunci.
description
Precondition Sistem menampilkan form Key Management.
Trigger Sender menekan button Bangkitkan Kunci.
Scenario :
1. Sender menekan button Manajemen Kunci di menu utama.
2. Sistem menampilkan form Manajemen Kunci.
3. Sender memasukan nomor telepon penerima.
4. Sender menekan button Bangkitkan Kunci
Exception :
1. Pengirim menekan tombol back, Generate Key dibatalkan.

4. Skenario Save Key

Skenario save key dapat dilihat pada tabel berikut.


Tabel Skenario Save Key

Use case name Save Key


Actor Sender
Use case Digunakan untuk menyimpan kunci yang telah
description dibangkitkan ke dalam database.
Precondition Sistem menampilkan form Key Management.
Trigger Sender menekan button Simpan Kunci.
Scenario :
1. Sender menekan button Manajemen Kunci di menu utama.
2. Sistem menampilkan form Manajemen Kunci.
3. Sender memasukan nomor telepon penerima.
4. Sender menekan button Simpan Kunci
Exception :
1. Pengirim menekan tombol back, Save Key dibatalkan.

5. Skenario Send Key

Skenario send key dapat dilihat pada tabel berikut.


Tabel Skenario Send Key

Use case name Send Key


Actor Sender
Use case Digunakan untuk mengirimkan kunci yang sudah
description dibangkitkan di database.
Precondition Sistem menampilkan form Key Management.
Trigger Sender menekan button Ambil Kunci.
Scenario :
1. Sender menekan button Manajemen Kunci di menu utama.
2. Sistem menampilkan form Manajemen Kunci.
3. Sender memasukan nomor telepon penerima.
4. Sender menekan button Kirim Kunci.
Exception :
1. Pengirim menekan tombol back, Send Key dibatalkan.

6. Skenario Encrypt
Skenario encrypt dapat dilihat pada tabel berikut.
Tabel Skenario Encrypt
Use case name Encrypt
Actor Sender
Use case
Digunakan untuk menyadikan pesan.
description
Precondition Sistem menampilkan form Create New Message.
Trigger Sender menekan tombol encrypt.
Scenario :
1. Sender menekan tombol Pesan Baru.
2. Sistem menampilkan form Cretae New Message.
3. Sender mengetikan pesan.
4. Sender memilih menekan button encrypt.
Exception :
1. Pengirim menekan tombol back, encrypt dibatalkan.

7. Skenario Send Message


Skenario kirim pesan dapat dilihat pada tabel berikut.
Tabel Skenario Send Ciphertext
Use case name Send Message
Actor Sender
Use case Digunakan untuk mengirim pesan yang telah
description dienkripsi.
Precondition Sistem menampilkan form Create New Message.
Trigger Sender menekan tombol Kirim.
Scenario :
1. Sender menekan button Pesan Baru.
2. Sistem menampilkan form Create New Message.
3. Sender mengetikan pesan.
4. Sender menekan button encrypt.
5. Sender menekan button Kirim.

Exception :
1. Sender menekan tombol back, Send Message dibatalkan.

8. Skenario Save Private Key

Skenario save private key dapat dilihat pada tabel.


Tabel Skenario Save Private Key
Use case name Save Private Key
Actor Receiver
Use case Digunakan untuk menyimpan kunci privat yang
description dikirimkan oleh sender.
Precondition Sistem menampilkan list inbox.
Trigger Sender memilih pesan masuk.
Scenario :
1. Receiver menekan button Pesan Masuk.
2. Sistem menampilkan list Inbox.
3. Receiver memilih kunci yang akan disimpan.
4. Sistem menampilkan menu detail inbox.
5. Receiver menekan tombol Save Key.
Exception :
1. Receiver menekan tombol back, Save Key dibatalkan.

9. Skenario Decrypt

Skenario Decrypt dapat dilihat pda tabel berikut


Tabel Skenario Decrypt
Use case name Decrypt
Actor Receiver
Use case
Digunakan mendekripsi pesan
description
Precondition Sistem menampilkan pesan yang akan didekripsi.
Trigger Pengirim menekan tombol decrypt
Scenario :
1. Receiver memilih pesan yang akan didekripsi.
2. Sistem menampilkan pesan yang akan di dekripsi.
3. Receiver menekan button decrypt.
Exception :
1. Receiver menekan tombol back, decrypt dibatalkan.

10. Skenario Change Password

Skenario change password dapat dilihat pada tabel berikut.

Tabel Skenario Change Password


Use case name Change Password
Actor Receiver atau Receiver (User)
Use case
Digunakan untuk mengganti password.
description
Precondition Sistem menampilkan form change password.
Trigger Pengirim menekan tombol change password.
Scenario :
1. User menekan button change password.
2. Sistem menampilkan form change password.
3. User memasukan password lama, password baru, dan confirm
password.
Exception :
1. User menekan tombol back, change password dibatalkan.

4.2 Activity Diagram


Activity diagram menggambarkan berbagai alur aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram yang terdapat
pada aplikasi yang dibangun yaitu sebagai berikut :

1. Activity Diagram Make Password

Activity diagram make password menggambarkan alur aktivitas pembuatan


password antara pengirim/penerima (user) dengan sistem seperti terlihat pada
gambar 3.7.
Gambar Activity Diagram Make Password

2. Activity Diagram Login

Activity login menggambarkan alur aktivitas input password antara


pengirim/penerima pesan (user) dengan sistem seperti terlihat pada gambar
dibawah.
Gambar Activity Diagram Login

3. Activity Diagram Generate Key

Activity diagram generate key mengambarkan alur aktivitas membangkitkan


sepasang kunci dengan mangambil 2 bilangan prima besar secara acak seperti
terlihat pada gambar dibawah.
Gambar Activity Diagram Generate Key

4. Activity Diagram Save Key

Activity diagram save key menggambarkan alur aktivitas menyimpan kunci


yang telah dibangkitkan ke dalam database seperti terlihat pada gambar
dibawah.
Gambar Activity Diagram Save Key

5. Activity Diagram Send Key

Activity diagram send key menggambarkan alur aktivitas mengirim pesan yang telah
dienkripsi kepada penerima seperti terlihat pada gambar dibawah.
Gambar Activity Diagram Send Key

6. Activity Diagram Encrypt

Activity diagram encrypt menggambarkan alur aktivitas enkripsi pesan antara


pengirim dengan sistem seperti terlihat pada gambar dibawah.
Gambar Activity Diagram Encrypt
7. Activity Diagram Send Message

Activity diagram encrypt menggambarkan alur aktivitas enkripsi pesan antara


pengirim dengan sistem seperti terlihat pada gambar.

Gambar Activity Diagram Send Message


8. Activity Diagram Save Private Key

Activity diagram save private key menggambarkan alur aktivitas menyimpan


kunci privat yang dikirimkan antara pengirim dengan sistem seperti terlihat
pada gambar dibawah.

Gambar Activity Diagram Save Private Key

9. Activity Diagram Decrypt

Activity diagram decrypt menggambarkan alur aktivitas dekripsi pesan antara


penerima dengan sistem seperti terlihat pada gambar dibawah.

Gambar Activity Diagram Decrypt


10. Activity Diagram Change Password

Activity diagram Decrypt menggambarkan alur aktivitas merubah password antara


penerima/pengirim dengan sistem seperti terlihat pada gambar dibawah.
Gambar Activity Diagram Change Password

4.3 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di


sekitar sistem (termasuk pengguna, display, dan sebagainya) yang digambarkan
terhadap waktu. Sequence diagram yang terdapat pada aplikasi keamanan sms
yaitu sebagai berikut:

1. Sequence Diagram Make Password

Sequence diagram make password merupakan diagram yang menggambarkan


interaksi yang terjadi dalam sistem antara pengirim/penerima dengan sistem
dalam membuat password. Sequence diagram make password aplikasi
kemanan SMS terlihat pada gambar dibawah.
Gambar Sequence Diagram Make Password

2. Sequence Login

Sequence diagram login merupakan diagram yang menggambarkan interaksi


yang terjadi dalam sistem antara pengirim/penerima dengan sistem dalam
memasukan password. Sequence diagram login aplikasi kemanan SMS
terlihat pada gambar dibawah.

Gambar Sequence Diagram Login


3. Sequrnce Diagram Generate Key

Sequence diagram generate key merupakan diagram yang menggambarkan


interaksi yang terjadi dalam sistem antara pengirim dengan sistem untuk
membangkitkan kunci. Sequence diagram get key aplikasi kemanan SMS
terlihat pada gambar dibawah.

Gambar Sequence Diagram Generate Key


4. Sequence Diagram Save Key

Sequence diagram save key merupakan diagram yang menggambarkan


interaksi yang terjadi dalam sistem antara pengirim dengan sistem untuk
menyimpan kunci yang telah dibangkitkan. Sequence diagram get key aplikasi
kemanan SMS terlihat pada gambar dibawah.

Gambar Sequence Diagram Save Key


5. Sequence Diagram Send Key

Sequence diagram send key merupakan diagram yang menggambarkan


interaksi yang terjadi dalam sistem antara pengirim dengan sistem untuk
mengirimkan kunci. Sequence diagram send key aplikasi kemanan SMS
terlihat pada gambar dibawah.

Gambar Sequence Diagram Send Key


6. Sequence Diagram Encrypt

Sequence diagram encrypt merupakan diagram yang mengambarkan interaksi


yang terjadi didalam sistem antara pengirim dengan sistem dalam
mengenkripsi pesan. Sequence diagram encrypt aplikasi keamanan SMS
terlihat pada gambar dibawah.

Gambar Squence Diagram Encrypt


7. Sequence Diagram Send Message

Sequence diagram send message merupakan diagram yang mengambarkan


interaksi yang terjadi didalam sistem antara pengirim dengan sistem dalam
mengirimkan pesan yang telah dienkripsi. Sequence diagram send message
aplikasi keamanan SMS terlihat pada gambar dibawah.

Gambar Sequence Diagram Send Message

8. Sequence Diagram Save Private Key

Sequence diagram save private key merupakan diagram yang mengambarkan


interaksi yang terjadi didalam system antara receiver dengan sistem dalam
menyimpan kunci privat yang dikirimkan ke dalam database. Sequence
diagram save private key aplikasi keamanan SMS terlihat seperti pada gambar
dibawah.

Gambar Sequence Diagram Save Private Key


9. Sequence Diagram Decrypt

Sequence diagram decrypt merupakan diagram yang mengambarkan interaksi


yang terjadi didalam system antara receiver dengan sistem dalam dendekripsi
pesan. Sequence diagram decrypt aplikasi keamanan SMS terlihat seperti
pada gambar dibawah.

Gambar Sequence Diagram Decrypt

10. Sequence Diagram Change Password

Sequence diagram change password merupakan diagram yang mengambarkan


interaksi yang terjadi didalam system antara user dengan sistem dalam
merubah password. Sequence diagram change passwword aplikasi keamanan
SMS terlihat seperti pada gambar dibawah.

Gambar Sequence Diagram Change Password

4.4 Class Diagram


Class diagram digunakan untuk menggambarkan keadan suatu sistem
dengan menjelaskan keterhubungan antara suatu class dengan class yang lain yang
terdapat pada sistem. Class diagram yang digunakan pada pembangunan aplikasi
kriptografi ini yaitu terlihat pada gambar dibawah.
Tabel Jenis Class Diagram
Nama Class Jenis Class
RegisterActivity Boundary
LoginActivity Boundary
MainActivity Boundary
MassageActivity Control
Message Entity
RSA Entity
InboxActivity Control
DetailInboxActivity Entity
ChangePasswordActivit Boundary
y
Key Entity
KeyManagerActivity Entity
KeyDataSource Entity
ChangePasswordActivit Boundary
y
5. Perancangan Form Program

Perancangan antarmuka buat password merupakan tahapan rancangan


pertama ketika pengguna telah menginstal aplikasi sebelum memasuki menu
utama, jika sebelumnya telah membuat password maka akan langsung ke
antarmuka Login. Perancangan antarmuka buat password dari aplikasi keamanan
SMS ini terlihat pada gambar dibawah.

Gambar Perancangan Antarmuka Buat Password


2. Perancangan Antarmuka Login

Perancangan antarmuka login merupakan tahapan rancangan antarmuka


sebelum memasuki menu utama. Perancangan antarmuka login dari aplikasi
Keamanan SMS ini terlihat pada gambar dibawah.

Gambar Perancangan Antarmuka Login

3. Perancangan Antarmuka Menu Utama

Perancangan antarmuka menu utama merupakan tahapan rancangan


antarmuka utama setelah sukses menginputkan password. Perancangan antarmuka
menu utama dari aplikasi Keamanan SMS ini terlihat pada gambar dibawah.

Gambar Perancangan Antarmuka Menu Utama


4. Perancangan Antarmuka Pesan Baru

Perancangan antarmuka pesan baru merupakan tahapan rancangan


antarmuka setelah menakan button kirim pesan pada menu utama. Perancangan
antarmuka pesan baru dari aplikasi Keamanan SMS ini terlihat pada gambar
dibawah.

Gambar Perancangan Antarmuka Pesan Baru

5. Perancangan Menejemen Kunci

Perancangan antarmuka manejemen kunci merupakan tahapan perancangan


antarmuka setelah menekan button management key pada menu utama.
Perancangan antarmuka manejemen kunci dari aplikasi Keamanan SMS ini terlihat
pada gambar dibawah.

Gambar Perancangan Antarmuka Manajemen Kunci


6. Perancangan Antarmuka Kotak Masuk

Perancangan antarmuka inbox merupakan tahapan rancangan antarmuka


setelah menakan button inbox pada menu utama. Perancangan antarmuka inbox
dari aplikasi Keamanan SMS ini terlihat pada gambar.

Gambar Perancangan Antarmuka Kotak Masuk

7. Perancangan Antarmuka Detail Kotak Masuk

Perancangan antarmuka detail kotak masuk merupakan tahapan rancangan


antarmuka setelah memilih pesan di dalam kotak masuk. Perancangan antarmuka
detail inbox dari aplikasi Keamanan SMS ini terlihat pada gambar dibawah.

Gambar 3.35 Perancangan Antarmuka Detail Kotak Masuk


8. Perancangan Antarmuka Ubah Password

Perancangan antarmuka ubah password merupakan tahapan rancangan


antarmuka setelah menekan button ubah password pada menu utama. Perancangan
antarmuka ubah password dari aplikasi Keamanan SMS ini terlihat pada gambar
dibawah.

Gambar Perancangan Antarmuka Ubah Password

9. Perancangan Antarmuka Tutorial

Perancangan antarmuka tutorial merupakan tahapan rancangan antarmuka


setelah menekan tombol tutorial pada menu utama. Perancangan antarmuka
tutorial dari aplikasi Keamanan SMS terlihat pada gambar dibawah.

Gambar Perancangan Antarmuka Tutorial


6. Potongan Listing

Line Source
1
public void encrypt(int m){
2 getPQ();
3 computeN();
4 computePhi();
5 getE();
6 computeD();
7 computePublicKey();
8 computePr4ateKey();

9 int z=(int)(Math.pow(m, publicKey[0])%publicKey[1]);


10 int x=(int)(Math.pow(z, pr4ateKey[0])%pr4ateKey[1]);
11
}

public void
12 getPQ(){
13 p=getPrimeNumber();
14 q=getPrimeNumber();
15 }

public int
16 getPrimeNumber(){
17 int r;
18 outer:
19 while(true){
20 r=(int)(Math.random()*100);
21 for(int i=2; i<r; i++){
22 if(r%i==0){
23 break outer;
24 }
25 }
26 }
27 return r;
28
}

29 public void computeN(){


30 n=p*q;
31 }

public void
32 computePhi(){
33 phi=(p-1)*(q-1);
34 }

public void
35 getE(){
36 int r=(int)(Math.random()*phi);
37 if(r-1>1){
38 r=r-1;
39 }
40 e=r;
41 }

public void
42 computeD(){
43 int r;
44 while(true){
45 r=(int)(Math.random()*100);
46 if((r*e)%phi==1){
47 d=r;
48 break;
49 }
50 }
51 }

public void
52 computePublicKey(){
53 publicKey[0]=e;
54 publicKey[1]=n;
55 }

56 public void computePr4ateKey(){


57 pr4ateKey[0]=d;
58 pr4ateKey[1]=n;
59 }

You might also like