Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis Android Menggunakan Algoritme RSA

PENGEMBANGAN APLIKASI PERTUKARAN SMS RAHASIA
BERBASIS ANDROID MENGGUNAKAN ALGORITME RSA

EDI SYAHPUTRA

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi Pengembangan Aplikasi
Pertukaran SMS Rahasia Berbasis Andorid Menggunakan Algoritme RSA adalah
benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan
dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang
berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari
penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di
bagian akhir disertasi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, Desember 2013
Edi Syahputra
NIM G64096021

ABSTRAK
EDI SYAHPUTRA. Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis
Android Menggunakan Algoritme RSA. Dibimbing oleh SHELVIE NIDYA
NEYMAN dan KARLINA KHIYARIN NISA.
Pengiriman pesan dengan menggunakan short message service (SMS)
merupakan suatu layanan yang sangat populer di kalangan pemakai telepon
seluler di Indonesia. Pengiriman SMS dari satu perangkat ke perangkat lain
membutuhkan perantara SMS center (SMSC) untuk menyimpan dan
menyampaikan SMS ke tujuan ketika perangkat tujuan tersedia. Teknologi SMS
memiliki kelemahan yaitu enkripsi hanya dilakukan antara mobile station (MS)
dan base transceiver station (BTS) sedangkan pada bagian lain tanpa enkripsi
sama sekali, sehingga memungkinkan serangan berupa penyadapan maupun
modifikasi. Metode RSA memiliki keunggulan yaitu tidak membutuhkan
pertukaran secret key dan dapat menjaga keaslian dari isi SMS. Aplikasi algoritme
RSA dapat diaplikasikan agar pertukaran SMS menjadi lebih aman dan terjaga

kerahasiaan isi pesan.
Kata kunci: Android, dekripsi, enkripsi, kriptografi, RSA, SMS rahasia

ABSTRACT
EDI SYAHPUTRA. Development of Secret SMS Exchange Application Based on
Android by Using RSA Algorithm. Supervised by SHELVIE NIDYA NEYMAN
and KARLINA KHIYARIN NISA.
Delivering message using short message service (SMS) is very familiar
among the users of cellular phone in Indonesia. SMS center (SMSC) is required to
keep and deliver SMS from one device to another device. The weakness of SMS
technology of is that the encryption only works between mobile station (MS) and
base transceiver station (BTS). Meanwhile on the other side, it is fully opened
without encryption so that some attacks such as hacking and modification become
highly possible. This research utilized RSA algorithm to secure the delivery of
SMS between one device and another. The advantage of RSA method is that it
does not need to exchange secret key and it is able to keep the original content of
SMS. It was found that RSA applications can be applied in order to guarantee the
security of SMS contents.
Keywords: Android, cryptography, decrypt, encrypt, RSA, secret SMS


PENGEMBANGAN APLIKASI PERTUKARAN SMS RAHASIA
BERBASIS ANDROID MENGGUNAKAN ALGORITME RSA

EDI SYAHPUTRA

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013

Penguji:
1 DrEng Heru Sukoco, BSc MEng


Judul Skripsi : Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis
Android Menggunakan Algoritme RSA
Nama
: Edi Syahputra
NIM
: G64096021

Disetujui oleh

Shelvie Nidya Neyman, SKom Msi

Karlina Khiyarin Nisa, SKom MT

Pembimbing I

Pembimbing II

Diketahui oleh

Dr Ir Agus Buono, MSi Mkom

Ketua Departemen

Tanggal Lulus:

Judul Skripsi
Nama
NIM

Pengernbangan Aplikasi Pertukaran SMS Rahasia Berbasis Android
Menggunakan Algoritrne RSA
Edi Syahputra
G64096021

Disetujui oleh

Shelvie Nidya Neyman, SKorn MSi

Karlina Khiyarin Nisa, Skorn MT

Pernbirnbing I


Pernbirnbing II

Diketahui

セ Nエ@

MSi セGョ|Nッイ@

Tanggal Lulus:

O

7 FEB 20 ' 4

PRAKATA
Segala puji syukur dan kemuliaan hanya kepada Tuhan Yesus Kristus atas
segala limpahan hasil karunia-Nya, sehingga penulis dapat menyelesaikan skripsi
yang berjudul “Pengembangan Aplikasi Pertukaran SMS Rahasia Berbasis
Android Menggunakan Algoritme RSA”.

Penulis menyadari skripsi ini masih jauh dari sempurna dan dalam
penyelesaiannya tidak lepas dari bimbingan, arahan dan bantuan dari berbagai
pihak, dalam kesempatan ini perkenankan penulis untuk mengucapkan terima
kasih dan penghargaan yang tinggi kepada yang terhormat :
1 Ayahanda Lodewyk Panjaitan, SH, Ibunda Nanamna Br Sembiring,
Kakanda Cony M. Br Panjaitan, Adinda Nancy R. Br Panjaitan dan Bery
C. Panjaitan beserta semua keluarga besar atas semua doa dan dukungan
yang senantiasa diberikan.
2 Miel Arta yang penuh dengan kesabaran untuk memberikan semangat,
motivasi, dan mendengarkan segala keluhan disaat penulis merasa jenuh
dan putus asa selama penyusunan skripsi.
3 Ibu Shelvie Nidya Neyman, SKom MSi dan Ibu Karlina Khiyarin Nisa,
SKom MT selaku dosen pembimbing yang senantiasa mencurahkan
waktu, tenaga, dan pikiran untuk penyelesaian skripsi ini.
4 Bapak DrEng Heru Sukoco, BSc MEng sebagai dosen penguji atas
segala masukan yang diberikan.
5 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB untuk
semua yang telah mereka berikan selama penulis mengikuti proses
pembelajaran.
6 Seluruh staf yang telah membantu proses pembelajaran hingga selesai.

7 Rekan-rekan mahasiswa ekstensi ILKOM IPB khususnya seangkatan
Ilkom X4 atas persahabatan dan kebersamaan selama ini. Semoga
kebersamaan kita akan terus berjalan untuk selamanya.
8 Pihak-pihak lain yang tidak mungkin disebutkan satu persatu untuk
bantuannya dalam penyelesaian tugas akhir ini.
Akhir kata, masukan dari berbagai pihak tentu amat diharapkan untuk
membangun apa yang telah dicapai penelitian ini hingga menjadi lebih baik lagi.
Semoga penelitian ini memberikan manfaat untuk orang lain.

Bogor, Desember 2013
Edi Syahputra

DAFTAR ISI
DAFTAR TABEL

vii

DAFTAR GAMBAR

vii


DAFTAR LAMPIRAN

viii

PENDAHULUAN

1

Latar Belakang

1

Tujuan Penelitian

1

Ruang Lingkup Penelitian

2


TINJAUAN PUSTAKA

2

Android

2

Android Software Development Kit (SDK)

2

Arsitektur SMS

3

Keamanan SMS

3


Serangan pada SMS

4

Kriptografi

5

Protokol

6

Siklus Hidup Keamanan

6

Algoritme RSA

7

METODE

8

Identifikasi Layanan Keamanan

8

Penentuan Kebijakan

9

Spesifikasi

9

Desain

9

Implementasi

9

Pengujian

9

HASIL DAN PEMBAHASAN
Identifikasi Layanan Keamanan

9
9

Penentuan Kebijakan

10

Spesifikasi

10

Desain

11

Implementasi

15

Pengujian

16

SIMPULAN DAN SARAN

17

DAFTAR PUSTAKA

18

LAMPIRAN

19

RIWAYAT HIDUP

20

DAFTAR TABEL
1 Pengujian fungsionalitas

16

2 Kinerja enkripsi pesan

17

3 Kinerja dekripsi pesan

17

DAFTAR GAMBAR
1 Skema pengiriman SMS

3

2 Teknik spoofing SMS

4

3 Siklus hidup keamanan

6

4 Tahapan penelitian

8

5 Alur protokol

11

6 Proses pembangkitan pasangan kunci

12

7 Proses enkripsi pesan

12

8 Proses dekripsi pesan

13

9 Proses pengiriman SMS rahasia

13

10 Proses verifikasi SMS

14

11 Alur SMS rahasia

15

DAFTAR LAMPIRAN
1 Source code untuk pembangkitan pasangan kunci (gen_key.php)

19

2 Source code untuk enkripsi pesan (encrypt.php)

19

3 Source code untuk dekripsi pesan (decrypt.php)

19

PENDAHULUAN
Latar Belakang
Kemajuan teknologi dewasa ini telah mengalami perkembangan yang
signifikan. Kemajuan ini pun dirasakan berdampak baik pada manusia. Hal ini
dikarenakan banyaknya permasalahan manusia yang mampu diselesaikan oleh
teknologi. Mulai dari masalah komunikasi sampai pada masalah keamanan telah
mampu dijawab oleh teknologi sekarang ini. Sehingga bisa dikatakan teknologi
saat ini telah menjadi tulang punggung bagi segala aktifitas manusia. Kemajuan
teknologi yang paling signifikan yang dapat kita lihat adalah kemajuan teknologi
dalam bidang informasi.
Salah satu perkembangan teknologi informasi terwakilkan dalam
perkembangan telepon seluler. Telepon seluler atau lebih dikenal sebagai ponsel
merupakan perangkat komunikasi populer berbasis mobile. Oleh karena itu, dunia
saat ini sedang melangkah pasti pada dunia mobile, dimana peralatan teknologi
informasi yang awalnya hanya bisa di kantor atau rumah mulai tergantikan dengan
notebook, netbook, smartphone, dan peralatan mobile yang lainnya. Telepon
seluler pun menjadi salah satu yang akan berperan aktif dalam dunia mobile ini.
Salah satu media komunikasi yang digunakan menggunakan ponsel adalah
short message service (SMS). SMS merupakan cara cepat dan mudah
berkomunikasi untuk menyampaikan pesan kepada orang lain. Layanan SMS juga
digunakan untuk transaksi perbankan yaitu dengan mengirimkan informasi saldo,
laporan transaksi yang baru saja dilakukan dan PIN untuk transaksi e-Banking.
Namun, semakin praktis dan efektif sebuah teknologi maka semakin rentan
juga teknologi itu terhadap sasaran dari tindak kejahatan pada dunia mobile ini.
Teknologi pun menjadi rentan terhadap segala tindak kecurangan yang mampu
dilakukan oleh orang-orang yang mampu memasuki daerah privasi ini.
Kemungkinan kerentanan sistem keamanan pada teknologi informasi ini juga
dialami pada layanan SMS.
SMS memiliki berbagai kelemahan yaitu SMS dibangun dengan system dan
program yang sama. SMS juga melakukan roaming jaringan setempat hingga ke
jaringan asing sehingga dimungkinkan adanya SMS spoofing dalam bentuk
penyamaran atau manipulasi informasi seperti alamat atau data lainnya yang
menyerupai user. Kelemahan lainnya yaitu isi SMS yang dikirim bersifat terbuka
di system penyedia jasa maupun pegawainya. Hal ini semakin menuntut kekuatan
pada keamanan data yang dimiliki oleh SMS.
Penelitian ini akan mengaplikasikan algoritme RSA pada SMS untuk
meningkatkan aspek confidentiality, integrity, authenticity, dan non-repudiation
pada perangkat mobile berbasis Android. Aplikasi dikembangkan dan diujikan
pada perangkat ponsel yang mendukung Android dengan versi minimal 2.3.

Tujuan Penelitian
Tujuan dari penelitian ini adalah mengembangkan aplikasi pengiriman SMS
rahasia sehingga menjamin kerahasiaan isi pesan dan menjamin otentikasi

2
pengirim sebenarnya. Dengan demikian cracker akan kesulitan untuk membaca,
mengubah SMS, dan memalsukan otentikasi pesan antara dua perangkat berbasis
Android.
Ruang Lingkup Penelitian
Ruang lingkup penelitian ini yaitu:
1 Penerapan pembangkitan kunci publik dan pribadi menggunakan algoritme
RSA;
2 Distribusi kunci publik dilakukan via SMS;
3 Penggunaan enkripsi dan dekripsi SMS menggunakan algoritma RSA sebagai
peningkatan keamanan SMS;
4 Ponsel pengirim dan penerima harus memakai aplikasi yang dikembangkan;
5 Tidak membahas/menganalisa overhead cost pemakaian aplikasi dibandingkan
dengan aplikasi SMS biasa;
6 Hanya untuk satu pengirim dan satu penerima.

TINJAUAN PUSTAKA
Android
Android bukan hanya untuk perangkat mobile saja, Android merupakan
sebuah sistem operasi yang dikemas sedemikian rupa sehingga dapat digunakan
untuk berbagai perangkat yang menggunakan layar.
Awalnya, Google membeli Android, pendatang baru yang membuat peranti
lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open
Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile,
dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android
bersama Open Handset Alliance menyatakan mendukung pengembangan standar
terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android
di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka
perangkat seluler.

Android Software Development Kit (SDK)
Layanan SMS, merupakan salah satu layanan pengiriman pesan. Layanan
SMS terdapat di hampir semua perangkat telepon seluler. Layanan SMS
memungkinkan pengiriman pesan pendek berbasis teks melalui jalur komunikasi.
Pengiriman dilakukan dari satu pengguna ke pengguna lain atau dari satu
pengguna ke suatu aplikasi. Sebuah pesan SMS memiliki kapasitas maksimal 140
byte. Untuk karakter 8 bit sebuah pesan bisa memuat 140 karakter, untuk 7 bit
sebanyak 160 karakter, dan untuk karakter 16 bit seperti Bahasa Jepang, Bahasa
Mandarin, dan Bahasa Korea yang memakai huruf Kanji, dapat memuat 70
karakter. Pengguna dapat mengirimkan lebih dari 140 byte, namun akan dihitung
mengirim pesan lebih dari satu SMS (Ayuningtyas 2007).

3
Layanan SMS awalnya dirancang sebagai bagian dari jaringan global system
for mobile communication (GSM). Seiring dengan berkembangnya teknologi,
layanan ini juga dibawa ke jaringan lain seperti general packet radio service
(GPRS) dan code division multiple access (CDMA). Skema pengiriman SMS
ditunjukkan pada Gambar 1.

Gambar 1 Skema pengiriman SMS (Bodic 2003).
SMS yang dikirim oleh pengirim akan diterima oleh operator
telekomunikasi yang digunakan pengirim. Operator ini akan mengirimkan SMS
tersebut ke operator yang digunakan penerima. Bila pengirim dan penerima masih
satu operator, proses ini tidak terjadi. Operator penerima kemudian mengirimkan
SMS tersebut ke penerima yang dituju oleh pengirim. Penerima secara otomatis
akan mengirim status report ke pengirim. Status report ini akan melalui proses
yang sama dengan pesan yang dikirim. Saat ini, pengiriman SMS sudah dapat
melintasi teknologi baik itu GSM ke CDMA atau sebaliknya. Proses lintas
teknologi ini dilakukan antar operator telekomunikasi.

Arsitektur SMS
Suatu pesan SMS dikirim melalui kanal sinyal GSM antara mobile station
(MS) dan base transceiver station (BTS). Pesan ini mengalir seperti panggilan
normalnya, tetapi mereka diarahkan dari mobile station center (MSC) ke short
message service center (SMSC). SMSC menyimpan pesan tersebut sampai dapat
dikirim kepada penerima ataupun sampai kepada validitas waktu dari pesan telah
terlewati. Penerima dari pesan ini dapat berupa pemakai MS maupun SMS
gateway. SMS gateway yaitu suatu server yang terkoneksi kepada satu atau lebih
SMSC untuk menyediakan aplikasi SMS kepada pemakai MS.

Keamanan SMS
Dua aspek penting dari suatu entitas yang menggunakan teknologi SMS
untuk pertukaran data pribadi maupun bisnis adalah sebagai berikut:
1 SMS bukanlah suatu lingkungan yang aman;
2 Pelanggaran keamanan sering terjadi lebih mudah pada konsentrasi terhadap
manusia daripada teknologi (Jones 2002).
Isi dari pesan SMS tidak terenkripsi pada sistem operator, sehingga
karyawan maupun penyusup pada sistem operator dapat dengan mudah
melakukan penyadapan maupun perubahan. Dengan demikian SMS bukanlah
teknologi yang cocok untuk komunikasi yang membutuhkan keamanan.
Kebanyakan pemakai tidak menyadari bahwa pembacaan isi SMS dapat dengan
mudah dilakukan oleh karyawan operator. Keamanan pada jaringan ini juga sangat

4
longgar proteksinya, sehingga menjadi sasaran cracker karena isi dari pesan
dikirim dalam bentuk plaintext. Walaupun pada gateway telah memiliki
authentication, tetapi kebanyakan menggunakan protokol dengan plaintext yang
mengandung informasi nama login dan password. Serangan man-in-the-middleattack dapat saja dilakukan walaupun tidak mudah dilakukan karena biasanya
gateway dan SMS center (SMSC) berada di belakang firewall.

Serangan pada SMS
Koneksi antara SMSC dan SMS gateway adalah bukan merupakan bagian
dari standard GSM, yang memungkinkan pemakaian protokol seperti TCP/IP dan
X.25 untuk komunikasi antara SMSC dan gateway. Koneksi tersebut juga
bukanlah merupakan bagian dari jaringan GSM, tetapi merupakan jaringan antara
operator dengan penyedia konten, atau bahkan dengan internet.
Permasalahan lainnya yang perlu diketahui adalah adanya kemungkinan
penyerang untuk membuat suatu gateway dimana dia berpura-pura menjadi
gateway yang sebenarnya. Gateway palsu ini kemudian dapat mengirim segala
jenis SMS kepada pemakai Mobile Station (MS) melalui SMSC tersebut dengan
memanipulasi informasi pengirim pesan pada field tertentu pada SMSC protocol.
Dengan teknik spoofing ini dimungkinkan untuk memanipulasi Mobile Station
International ISDN Number (MSISDN) sehingga seakan-akan pesan tersebut
datang dari telepon seluler tertentu. Keberhasilan teknik ini tergantung kepada
implementasi pada SMSC. SMSC dapat juga cukup cerdas untuk memeriksa
keabsahan pengirim dan memblokir pesan tersebut, karena berasal dari suatu
gateway yang bukan merupakan suatu telepon seluler. Dalam hal ini penyerang
membuat suatu SMSC simulator yang berpura-pura menjadi suatu SMSC yang
sebenarnya sebagaimana ditunjukkan Gambar 2.

Gambar 2 Teknik spoofing SMS (Lenstra dan Verheul 2001)

5
Pada Gambar 2 dapat dijelaskan bahwa SMS dikirim kepada SMS-C dengan
memanipulasi MSISDN seakan-akan berasal dari pemakai akhir dari public land
mobile network (PLMN) A, dan mengirim SMS kepada pemakai akhir pada
PLMN B. Layanan ini diharapkan dapat mengatasi ancaman keamanan berupa
pemalsuan pengirim atau penyamaran dan perubahan isi pesan oleh pihak yang
tidak berwenang.
Kriptografi
Kriptografi berasal dari bahasa Yunani, yang terdiri dari kata crypto dan
graphia. Crypto berarti rahasia dan graphia berarti tulisan. Kriptografi merupakan
ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari sebuah sumber
informasi ke suatu tujuan pengiriman informasi. Para sejarahwan percaya bahwa
hieroglif Mesir, yang dimulai sekitar tahun 1900, merupakan contoh
pengenkripsian yang paling awal ditemukan. Kunci yang dapat memecahkan
rahasia hieroglif adalah Rosetta Stone, ditemukan tahun 1799 di Mesir dan
sekarang berada di British Museum, London. Francois Champollion,
menggunakan Rosetta Stone, mendekripsi hieroglif pada tahun 1822 (Konheim
2007).
Pesan yang dikirimkan dapat berupa teks, data numerik, dan data jenis lain
disebut dengan plaintext. Dengan melakukan proses enkripsi, plaintext tersebut
berubah menjadi ciphertext. Proses untuk mengembalikan ciphertext menjadi
plaintext disebut dengan proses dekripsi. Untuk melakukan proses dekripsi
diperlukan adanya suatu kunci rahasia.
Tujuan dari kriptografi adalah (Schneier 1996):
1 Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi
informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap
informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari
pengamanan secara fisik hingga penggunaan algoritma matematika yang
membuat data tidak dapat dipahami. Istilah lain yang senada dengan
confidentiality adalah secrecy dan privacy.
2 Integritas data adalah layanan penjagaan pengubahan data dari pihak yang
tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak
berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain
kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini
direalisasikan dengan menggunakan tanda-tangan digital (digital signature).
Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah
asli.
3 Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication) maupun mengidentifikasi kebenaran
sumber pesan (data origin authentication). Dua pihak yang saling
berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat
memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi
juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga

6
memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi
berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data
selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam
kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan
digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.
4 Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah entitas
yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan
menyangkal melakukan pengiriman atau penerima pesan menyangkal telah
menerima pesan.
Protokol
Protokol merupakan rangkaian langkah-langkah yang melibatkan dua entitas
atau lebih dan didesain untuk menyelesaikan masalah (Schneier 1996).
1

2
3
4

Karakteristik protokol adalah sebagai berikut:
Semua pihak yang terlibat dalam protokol harus mengetahui keberadaan
protokol dan mengikuti keseluruhan langkah-langkah yang terdapat di dalam
protokol.
Semua pihak yang terlibat harus menyetujui penggunaan protokol tersebut.
Setiap langkah yang ada di dalam protokol harus jelas dan tidak
membingungkan.
Protokol yang digunakan harus lengkap menjelaskan tindakan yang dilakukan
untuk semua kemungkinan yang terjadi.
Siklus Hidup Keamanan

Salah satu metode pembangunan protokol adalah berdasarkan siklus hidup
keamanan (security life cycle). Siklus ini terdiri atas rangkaian tahap. Setiap tahap
dapat kembali lagi ke tahap sebelumnya walau belum menyelesaikan satu siklus.
Gambar 3 menunjukkan siklus hidup keamanan (Bishop 2002).
Threats

Policy

Spesification

Design

Implementation
Operation and
Maintenance

Gambar 3 Siklus hidup keamanan (Bishop 2002)

7
Penjelasan dari siklus hidup keamanan pada Gambar 3 adalah sebagai
berikut:
1 Threat atau ancaman. Pada tahap ini, dilakukan analisis ancaman-ancaman
yang berpotensi menyerang protokol. Identifikasi ini bertujuan agar layanan
yang dibuat nantinya mampu mengatasi ancaman-ancaman tersebut.
2 Policy atau kebijakan. Kebijakan yang dibuat berdasarkan ancaman yang telah
diidentifikasi. Kebijakan-kebijakan yang dibuat harus mampu mengatasi
ancaman-ancaman pada layanan yang dibuat.
3 Specification. Spesifikasi merupakan pernyataan fungsional. Spesifikasi
mendeskripsikan metode sistem dalam memberikan layanan keamanan.
Spesifikasi juga menentukan kebutuhan yang relevan dengan layanan yang
dibuat.
4 Design. Pada tahap ini, apa yang telah ada di tahap spesifikasi diterjemahkan
ke dalam komponen-komponen yang siap untuk diimplementasikan.
5 Implementation. Pada tahap ini, apa yang ada di tahap desain
diimplementasikan. Tahap ini menghasilkan aplikasi protokol yang sesuai
dengan tahap desain. Aplikasi yang memenuhi desain berarti memenuhi
spesifikasi.
6 Operation and maintenance atau pengoperasian dan perawatan. Pada tahap ini,
dijelaskan bagaimana proses pengoperasian aplikasi yang dikembangkan
hingga berhasil sesuai dengan tujuan sedangkan perawatan merupakan proses
perubahan-perubahan yang terjadi dari aplikasi yang dikembangkan hingga
perkembangannya menjadi lebih baik lagi.
Algoritme RSA
Algoritma RSA mengambil nama dari Ron Rivest, Adi Shamir dan Len
Adleman yang menciptakan metode ini pada tahuin 1977. Teknik dasarnya
ditemukan pertama kali pada tahun 1973 oleh Clifford Cock dari CESG (bagian
dari British GCHQ) tetapi dirahasiakan sampai tahun 1977. Paten dimiliki oleh
RSA Labs dan telah expired (Ireland 2011). Keamanan algoritme RSA terletak
pada sulitnya memfaktorkan bilangan bulat yang berukuran besar (Schneier 1996).
RSA digunakan untuk enkripsi suatu berita tanpa membutuhkan pertukaran
secret key. Sebagai contoh, dalam suatu skema pengiriman pesan dari Alice ke
Bob, Alice dapat mengirim pesan tersandi kepada Bob tanpa perlu pertukaran
secret key sebelumnya. Alice cukup menggunakan kunci publik milik Bob untuk
proses enkripsi berita menjadi ciphertext, dan Bob menggunakan kunci pribadi
yang hanya diketahuinya untuk proses dekripsi ciphertext tersebut menjadi
plaintext. RSA juga dapat digunakan untuk suatu tandatangan digital pada berita,
dimana Alice menandatangani pesan dengan menggunakan kunci pribadi-nya dan
Bob dapat memeriksanya dengan menggunakan kunci publik milik Alice (Ireland,
2011).
Langkah-langkah algoritme RSA untuk membangkitkan kunci adalah
sebagai berikut:
1 Membangkitkan dua bilangan acak prima x dan y dengan jumlah bit yang sama.
2 Hitung nilai n = xy.

8
3 Hitung nilai (n) = (x – 1)(y – 1).
4 Memilih bilangan bulat e. Nilai e merupakan bilangan prima relatif dari (n)
dan tidak memiliki faktor bersama kecuali 1. Persamaan untuk nilai e dapat
dituliskan dengan gcd(e, (n)) = 1.
5 Menghitung nilai d. Nilai d didapat dari perhitungan e*d ≡ 1 mod (n)
sehingga d = e-1 mod (n).
Yang menjadi kunci publik adalah pasangan (n, e) dan yang menjadi kunci
pribadi adalah d.
Pesan yang akan dikirim dianggap sebagai bilangan integer p. Enkripsi dilakukan
dengan melakukan perhitungan c = pe(mod n). C merupakan pesan yang sudah
dienkripsi. Proses dekripsi dilakukan dengan melakukan perhitungan
p = cd(mod n). Nilai p merupakan pesan asli.

METODE
Penelitian dilakukan dengan lima tahap yang digunakan dan berdasarkan
siklus hidup keamanan (Bishop 2002).
Tahapan tersebut meliputi identifikasi layanan keamanan dari ancamanancaman (threats), penentuan kebijakan (policy), spesifikasi (specification),
desain (design), implementasi (implementation), dan pengujian (testing)
sedangkan untuk tahapan operation dan maintenance tidak dilakukan. Tahapan
penelitian ditunjukkan pada Gambar 4.
Threats

Policy

Spesification

Design

Implementation

Gambar 4 Tahapan penelitian
Identifikasi Layanan Keamanan
Pada tahap ini, dilakukan identifikasi layanan keamanan pertukaran SMS
yang akan digunakan. Layanan ini diharapkan dapat mengatasi ancaman

9
keamanan berupa pemalsuan pengirim (penyamaran) dan modifikasi pesan oleh
pihak yang tidak berwenang.

Penentuan Kebijakan
Pada tahap ini, ditentukan kebijakan-kebijakan yang akan diterapkan pada
aplikasi dikembangkan. Kebijakan ini harus dapat diterapkan di aplikasi
pertukaran SMS yang dikembangkan agar dapat mengatasi ancaman keamanan
yang ada.

Spesifikasi
Pada tahap ini, ditentukan berbagai elemen yang ingin diterapkan pada
aplikasi pertukaran SMS.

Desain
Pada tahap ini, dilakukan perancangan aplikasi pertukaran SMS.
Perancangan dilakukan berupa perancangan protokol, perancangan proses, dan
cara kerja aplikasi pertukaran SMS.

Implementasi
Pada tahap ini, dilakukan implementasi sesuai dengan desain yang telah
dilakukan. Implementasi dilakukan dengan menggunakan Android karena aplikasi
dikembangkan untuk digunakan di telepon seluler.

Pengujian
Pada tahap ini, aplikasi telah selesai diuji. Pengujian yang dilakukan adalah
pengujian fungsionalitas dan pengujian kinerja aplikasi pertukaran SMS.

HASIL DAN PEMBAHASAN
Identifikasi Layanan Keamanan
Layanan keamanan pertukaran SMS didesain untuk dapat memberikan
layanan autentikasi dan integritas data untuk mengatasi masalah penipuan yang
dilakukan cracker. Layanan ini juga dapat memberikan fungsi anti penyangkalan.
Layanan anti penyangkalan memungkinkan pihak pengirim tidak dapat
menyangkal sebagai pemilik pesan yang diterima oleh penerima.

10
Masalah keamanan yang menjadi sorotan utama pada pengembangan sistem
ini adalah tentang kerahasiaan isi pesan. Kerahasiaan tersebut berupa ancaman
pembacaan isi pesan oleh pihak yang bukan seharusnya membaca isi pesan,
sehingga informasi menjadi rentan untuk tetap bersifat rahasia. Ancaman
pemalsuan terkait dengan autentikasi pesan. Masalah modifikasi terkait integritas
data.
Untuk itu diperlukan sistem proteksi yang dapat menjaga isi SMS dengan
menggunakan algoritme RSA. Pada sisi pengirim akan mengenkripsi pesan
dengan kunci publik penerima kemudian dienkripsi lagi dengan kunci pribadi
pengirim. Lalu di sisi penerima akan mendekripsi pesan dengan kunci publik
pengirim kemudian didekripsi lagi dengan kunci pribadi penerima. Dengan
demikian akan dapat dipastikan hanya penerima yang sah yang dapat mendekripsi
pesan dan bahwa benar pengirim yang sah yang mengirim pesan tersebut.

Penentuan Kebijakan
Kebijakan keamanan yang diterapkan adalah sebagai berikut:
1 User Policy
Terdapat dua pengguna yaitu pengirim dan penerima. Pengirim bertindak
juga sebagai penanda. Hak dari pengirim adalah:
 Membangkitkan pasangan kunci RSA.
 Mengirimkan kunci publik ke penerima.
 Mengamankan isi SMS yang dikirimkan.
Penerima bertindak juga sebagai pihak yang melakukan verifikasi. Hak
dari penerima adalah:
 Membangkitkan pasangan kunci RSA
 Menerima kunci publik dari pengirim.
 Melakukan verifikasi valid tidaknya isi SMS.
2 IT Policy
Masing-masing pasangan kunci pada pengirim dan penerima dicatat untuk
proses enkripsi dan dekripsi pesan.
3 General Policy



Kebijakan lain yang diterapkan adalah sebagai berikut:
Pengirim tidak diijinkan untuk menyebarkan atau mempertukarkan kunci
pribadi yang dimilikinya.
Jika pengirim dan penerima membangkitkan kunci lagi, kunci yang lama
akan dianggap tidak valid dan akan ditulis-ulang dengan kunci yang baru.

Spesifikasi
Pembangkitan pasangan kunci, enkripsi pesan, dan dekripsi pesan
berdasarkan algoritme RSA yang dilakukan oleh server. Pengiriman SMS yang
sudah terenkripsi dilakukan melalui jaringan telekomunikasi yang ada pada ponsel

11
yang digunakan seperti GSM atau CDMA. SMS tersebut kemudian diverifikasi
oleh aplikasi penerima. Hasil verifikasi akan menunjukkan apakah SMS tersebut
valid atau tidak. Hasil dari verifikasi tersebut dapat dijadikan sebagai cara untuk
menjamin otentikasi SMS dan integritas SMS.

Desain
Tahapan desain merupakan proses yang dilakukan untuk merancang
pembuatan sistem. Secara umum aplikasi yang dirancang terdiri dari 3 komponen
utama yaitu:
1 Aktifitas untuk pembangkitan kunci publik dan kunci pribadi pemakai dengan
algoritma RSA.
2 Aktifitas untuk mengirim kunci publik dan SMS terenkripsi pemakai kepada
alamat target tujuan dengan menggunakan SMS.
3 Aktifitas yang berfungsi menampilkan plaintext dari SMS terenkripsi.
4 Aktifitas untuk membangkitkan kunci publik dan kunci pribadi pemakai,
enkripsi pesan, dan dekripsi pesan pada server.
Keempat bagian tersebut mengikuti protokol yang ditunjukkan pada
Gambar 5.
Mulai
Pembangkitan
pasangan kunci RSA
Mengirim kunci
publik dan SMS
enkripsi
Verifikasi kunci
pada SMS
Selesai

Gambar 5 Alur protokol
Proses pembangkitan pasangan kunci mengikuti algoritme RSA yang telah
ada, yaitu:
1 Membangkitkan dua bilangan acak prima x dan y dengan jumlah bit yang sama.
2 Hitung nilai n = xy.
3 Hitung nilai (n) = (x – 1)(y – 1).
4 Pilih sembarang bilangan e, 1< e < (n); {x|gcd(x,n)=1}
5 Hitung inversi dari e, yaitu d*e = 1+k((n)).
 Yang menjadi kunci publik adalah pasangan (e, n)
 Yang menjadi kunci pribadi adalah (d, n)

12

Mulai
Pili bilangan prima
x&y
n=xxy

Ф(n) = (x-1)(y-1)
Pilih integer e
gcd(ф(n),e) = 1
1 < e < ф(n)
Hitung d
d * e = 1+ k (ф(n))
Kunci publik = {e,n}
Kunci private = {d,n}
Selesai
Gambar 6 Proses pembangkitan pasangan kunci.
Setelah kunci dibangkitkan pada pengirim dan penerima, lalu dilakukan
penyebaran kunci publik via SMS dari pengirim SMS untuk proses pembentukan
SMS enkripsi dan untuk proses dekripsi SMS pada penerima SMS.
Algoritma enkripsi:
1 Ambil kunci publik penerima pesan, e, dan modulus n.
2 Nyatakan plainteks p menjadi blok-blok p1, p2, ..., sedemikian sehingga tiap
blok mempresentasikan nilai di dalam selang [0, n – 1]
3 Setiap blok p1 dideskripsikan menjadi blok ci dengan rumus ci = pie mod n atau
lebih mudahnya enkripsi = pesane mod n
Mulai
Pembangkitan
kunci
c = pe mod n
Selesai

Gambar 7 Proses enkripsi pesan

13
Algoritma dekripsi:
1 Setiap blok chiperteks ci dideskripsi kembali menjadi blok pi dengan rumus
pi =cid mod n atau lebih mudahnya pesan=enkripsid mod n
2 Ambil kunci publik (n,e) dan kunci pribadi (n,d)
3 Dekripsi: p=cd mod n
Mulai
Pembangkitan
kunci
p = cd mod n
Selesai

Gambar 8 Proses dekripsi pesan
Desain proses pembentukan SMS rahasia ditunjukkan pada Gambar 9.
Tahap-tahap yang dilakukan pada proses pembentukan SMS rahasia adalah
sebagai berikut:
1 Masukan adalah SMS yang akan dikirim.
2 Pada SMS plainteks akan dienkripsi dengan parameter kunci publik penerima
sebagai C1.
3 C1 kemudian dienkripsi menggunakan parameter kunci pribadi pengirim SMS
menjadi C2.
4 Hasil enkripsi tersebut (C2) yang akan dikirim ke penerima.

Mulai

SMS
Enkripsi
kunci publik penerima
C1
Enkripsi
Kunci private
pengirim C2
Kirim C2 via SMS ke
tujuan
Selesai
Gambar 9 Proses pengiriman SMS rahasia

14
Desain proses verifikasi pesan (dekripsi) ditunjukkan pada Gambar 10.
Tahap-tahap verifikasi SMS rahasia adalah sebagai berikut:
1 Masukan pada penerima adalah SMS yang telah terenkripsi hasil dari pengirim
(C2).
2 SMS enkripsi, didekripsi menggunakan parameter kunci publik pengirim
sebagai P1.
3 P1 kemudian didekripsi dengan kunci pribadi sebagai plainteks.
4 Hasil dekripsi tersebut didapat plainteks yang jika terbaca maka SMS tersebut
bernilai valid dan jika tidak dapat dibaca maka SMS tersebut bernilai tidak
valid.
Mulai

SMS enkripsi

Dekripsi
kunci publik pengirim
P1
Dekripsi
kunci private penerima
P2

Plainteks
terbaca?

Tidak

SMS tidak valid

Ya
SMS valid

Selesai

Gambar 10 Proses verifikasi SMS
Untuk alur menyeluruh proses pengiriman pesan ditunjukkan pada
Gambar 11.

15
A. PROSES PEMBANGKITAN KUNCI

B. PROSES PENYEBARAN KUNCI
SEND PUBLIK KEY A VIA SMS

GET KEY

PONSEL
A
GENERATE KEY

PONSEL
A

PONSEL
B

GENERATE KEY
SEND PUBLIK B VIA SMS

PONSEL
B

Server
GET KEY

C. PROSES PENGIRIMAN SMS
SERVER MELAKUKAN ENRKIPSI
(kunci publik B + kunci pribadi A + SMS ASLI)

SERVER MELAKUKAN DEKRIPSI
(kunci publik A + kunci pribadi B + SMS ENKRIPSI)

OPERATOR

SEND SMS ENKRIPSI

PRESS SEND BUTTON
ON HANDSET

Server

Server

“VALID”
GET SMS ASLI

PRESS DEKRIP BUTTON
ON HANDSET

PONSEL
A

B input nilai kunci Publik A dan
Pribadi B beserta SMS ENKRIPSI

A input nilai kunci Publik B dan
Pribadi A beserta SMS ASLI

PONSEL
B

SEND SMS ENKRIPSI

Gambar 11 Alur SMS rahasia
Pada proses A yaitu pembangkitan kunci, ponsel A dan B meminta server
untuk membangkitkan kunci dengan method POST sehingga mendapatkan kunci
publik dan kunci pribadi. Pada proses B yaitu proses penyebaran kunci, ponsel A
dan B hanya melakukan pertukaran kunci publik melalui SMS biasa. Kunci publik
diperlukan untuk proses enkripsi dan dekripsi. Pada proses C yaitu pengiriman
SMS rahasia, ponsel A bertindak sebagai pengirim memasukkan nomor ponsel B,
kunci publik B, dan kunci pribadi A beserta SMS asli. Lalu si A memilih menu
send pada aplikasi SMS rahasia untuk selanjutnya server melakukan proses
enkripsi dan SMS rahasia tersebut dikirimkan melalui jalur SMS biasa hingga si B
mendapatkan pemberitahuan SMS masuk. SMS masuk akan berada pada inbox
aplikasi SMS rahasia. Untuk mendapatkan validasi dan isi pesan asli dari SMS
rahasia tersebut si B harus memasukkan kunci publik A dan kunci pribadi B.
Selanjutnya proses dekripsi SMS rahasia dilakukan oleh server, jika nilai
parameter yang dibutuhkan sesuai maka si B akan mendapatkan SMS asli. Namun
jika nilai parameter yang dimasukkan salah, maka si B tidak dapat membaca
pesan tersebut.

Implementasi
Implementasi dilakukan sesuai dengan desain yang telah dibuat. Perangkat
yang digunakan terdiri atas perangkat keras, perangkat lunak, dan perangkat uji.
Perangkat keras yang digunakan adalah sebagai berikut:
1 Processor Intel Celeron M 430 1.70 GHz.
2 RAM 2 GB.
3 Harddisk kapasitas 250 GB.

16
1
2
3
4

Perangkat lunak yang digunakan adalah sebagai berikut:
Sistem operasi Microsoft Windows XP Service Pack 3 32-bit.
JDK 7 Update 25 32 bit.
Eclipse Juno v.21.
XAMPP v.1.8.

Perangkat uji untuk mencoba aplikasi ini adalah telepon seluler. Telepon
seluler yang digunakan adalah Smartfren Andromax U. Ponsel ini menggunakan
sistem operasi Android 4.1.2 dengan processor quad core 1.2 GHz, RAM 1 GB.
Perangkat uji lain adalah LG L7 II Dual dengan processor dual core berkecepatan
1.2 GH, RAM 768 MB. Ponsel ini menggunakan sistem operasi Android 4.1.2.
Untuk membangkitkan kunci RSA, mengenkripsi SMS, dan mendekripsi SMS
dilakukan menggunakan PHP.

Pengujian
Pengujian terdiri dari 2 sisi penilaian yaitu:
 Pengujian pembacaan pesan, bagaimana pesan dapat dibaca sesuai dengan
pesan asli dari pengirim tanpa ada perubahan pesan asli.
 Pengujian kinerja aplikasi, dengan menggunakan waktu untuk mengukur
kinerja masing-masing telepon seluler.
Pengujian awal dilakukan dengan cara pembangkitan pasangan kunci RSA,
lama pengiriman SMS bergantung pada kemampuan jaringan dan tidak ada
perbedaan dengan pengiriman SMS biasa.
1 Pengujian fungsionalitas yang dilakukan terdiri atas 6 pengujian. Pengujian
ditunjukkan pada Tabel 1.
Tabel 1 Pengujian fungsionalitas
Kasus

Parameter kunci Andromax U

Parameter kunci LG L7 II Dual

1
2
3
4
5
6

Valid
Valid (LG L7 II Dual)
Valid (Milik sendiri)
Valid
Invalid
Invalid

Valid (Pasangan dari Andromax U)
Valid
Valid (Milik sendiri)
Invalid
Valid
Invalid

Hasil
verifikasi
True
True
False
False
False
False

Pengujian pertama dan kedua merupakan pengujian yang memberikan
verifikasi benar (true). Pada pengujian ini, penerima memasukkan parameter
kunci publik yang sesuai dengan parameter kunci pribadi yang membentuk pesan.
Pengujian ketiga dilakukan dengan cara kedua ponsel mengenkripsi dan
mendekripsi pesan dengan kuncinya masing-masing. Pengujian keempat, kelima,
dan keenam melibatkan parameter kunci invalid. Maksud dari parameter kunci
invalid adalah ada satu atau lebih parameter yang bukan pasangan parameter yang
lainnya. Pasangan parameter yang invalid menyebabkan pesan tidak dapat dibaca.
2 Perhitungan waktu enkripsi pesan dilakukan saat tombol “send” pada aplikasi
ditekan hingga diterima oleh pengirim. Cara ini tentu menghasilkan bias yang
diakibatkan waktu pengiriman. Bias pada pengujian ini menjadi semakin besar
karena ditambah penggunaan stopwatch. Di samping itu, penggunaan produk

17
yang berbeda dari operator dapat berpengaruh pada kapasitas jaringan. Hasil
pengujian kinerja penerimaan SMS beserta verifikasi SMS rahasia ditunjukkan
pada Tabel 2.
Tabel 2 Kinerja enkripsi pesan
Pesan Asli
Hello
Skripsi
Percobaan

3

Jumlah Karakter
Pesan Enkripsi
150 kar
155 kar
159 kar

Pada
Andromax U
1.45 detik
2.37 detik
2.92 detik

Pada
LG L7 II Dual
1.99 detik
2.86 detik
3.30 detik

Perhitungan waktu dekripsi pesan dilakukan setelah pesan diterima oleh
pengirim. Cara ini menghasilkan bias pada pengujian. Bias ini menjadi
semakin besar karena ditambah bias penggunaan stopwatch. Hasil pengujian
kinerja penerimaan SMS beserta verifikasi SMS rahasia ditunjukkan pada
Tabel 3.
Tabel 3 Kinerja dekripsi pesan
Jumlah Karakter
Pesan Enkripsi
150 kar
155 kar
159 kar

Pesan Asli
Hello
Skripsi
Percobaan

Pada
Andromax U
1.10 detik
1.45 detik
1.68 detik

Pada
LG L7 II Dual
1.46 detik
1.60 detik
1.83 detik

Kemungkinan perbedaan waktu yang didapat disebabkan oleh karena
perbedaan jaringan operator (GSM dan CDMA) saat pengiriman. Kemungkinan
lain penggunaan RAM atau processor yang berbeda pada tiap ponsel.

SIMPULAN DAN SARAN
Simpulan
Berdasarkan hasil pengujian yang dilakukan aplikasi yang dirancang hanya
dapat mengirimkan pesan asli ≤ 9. Dari hasil tersebut diharapkan aplikasi ini dapat
meningkatkan keamanan SMS dari aspek otentikasi, integritas dan nonrepudiation. Karena plaintext SMS sebelum dikirim akan dienkripsi dengan kunci
publik penerima sebagai ciphertext1, dan ciphertext1 akan dienkripsi sekali lagi
dengan kunci pribadi pengirim menjadi ciphertext2. Sesuai dengan kemampuan
dari Algoritme RSA, jika seorang cracker melakukan penyadapan dan ingin
membaca ataupun melakukan perubahan isi pesan, maka dia perlu memecahkan
kunci pribadi penerima SMS rahasia tersebut. Jika seorang cracker ingin
mengirim SMS spoofing, maka dia perlu memecahkan kunci pribadi pengirim
SMS rahasia tersebut.

18
Saran
Saran yang dapat digunakan untuk penelitian selanjutnya antara lain:
1 Mengembangkan aplikasi agar dapat melakukan verifikasi dari beberapa
pengirim.
2 Mengembangkan aplikasi agar dapat memisahkan SMS biasa dengan SMS
rahasia.
3 Menambah jumlah karakter pesan asli sesuai dengan standar jumlah karakter
SMS biasa.

DAFTAR PUSTAKA
Ayuningtyas N. 2008. Implementasi kode Huffman dalam aplikasi kompresi teks
pada layanan SMS [skripsi]. Bandung (ID): Institut Teknologi Bandung.
Bishop M. 2002. Computer Security: Art and Science. Boston (US): Addison
Wesley.
Bodic GL. 2003. Mobile Messaging Technologies and Services: SMS, EMS and
MMS. Ed ke-2. West Sussex (UK): J. Wiley.
Ireland D. 2011.Using the CRT with RSA [internet]. [diunduh 2013 Agu 28].
Tersedia pada: http://www.di-mgt.com.au/crt_rsa.html.
Jones N. 2002. Don’t use SMS for confidential communication [internet].
[diunduh
2013
Agu
10].
Tersedia
pada:
http://www.gartner.com/displaydocument?doc_cd=111720.
Konheim AG. 2007. Computer Security and Cryptography. New Jersey (US): J
Wiley.
Lenstra AK and Verheul ER, 2011. Selecting cryptographic key sizes. Journal of
Cryptology. 14(4):255.
Safaat N. 2011. Android (Pemrograman Aplikasi Mobile Smartphone dan Tablet
PC Berbasis Android). Bandung (ID): Informatika.
Schneier B. 1996. Applied Cryptography. Protocols, Algorithms, and Source Code
in C. Ed ke-2. New Jersey (US): J Wiley.

19
Lampiran 1 Source code untuk pembangkitan pasangan kunci (gen_key.php)
$rand1=rand(1000,2000);
$rand2=rand(1000,2000);
//cari bil prima selanjutnya $rand1 &rand2
$p = gmp_nextprime($rand1);
$q = gmp_nextprime($rand2);
//menghitung&menampilkan n=p*q
$n=gmp_mul($p,$q);
//menghitung&menampilkantotient/phi=(p-1)(q-1)
$totient=gmp_mul(gmp_sub($p,1),gmp_sub($q,1));
//cari e, dimana e merupakan coprime dari totient
//e dikatakan coprime dari totient
//jika gcd/fpb dari e dan totient/phi = 1
for($e=2;$e