Pengembangan Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme MD5-RSA

PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA
SMS MENGGUNAKAN ALGORITME MD5-RSA

YAZRI HAFIZ

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

I

PENGEMBANGAN APLIKASI PENANDAAN DIGITAL PADA
SMS MENGGUNAKAN ALGORITME MD5-RSA

YAZRI HAFIZ

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
2012

II

ABSTRACT
YAZRI HAFIZ. The Development of Digital Signature Application for SMS Using MD5-RSA
Algorithm. Supervised by HENDRA RAHMAWAN.
Cellular phone is one of the most popular communication device. Unfortunately, this
popularity also increases number of crime using cellular phone. SMS fraud is one kind of crime using
cellular phone. Another method of sender verification is required to avoid this kind of crime.
Digital signatures can be used to verify the sender. The sender is sending SMS with digital
signature and the receiver will verify the signature. This application is developed using J2ME and
MD5-RSA algorithm as the signature method. This application also uses Bouncy Castle lightweight
cryptography API for J2ME as cryptography library.

Key pair parameters can be generated in 15 seconds to 4 minutes depends on the cellular phone
technology. The digital signature can be formed with an average time of 1.35 seconds to 1.97 seconds.
Digital signature verification can be done with an average time of 3.73 seconds to 12.09 seconds. The
digital signature is generated using private key parameters and verified using public key parameters.
Only the correct key pair will provide a valid result. Time to send signed-SMS depends on the
network capability. There is no difference compared to sending normal SMS.
Keywords: Bouncy Castle, Digital signature, J2ME, MD5-RSA, SMS

i

Judul Skripsi
Nama
NRP

: Pengembangan Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme
MD5-RSA
: Yazri Hafiz
: G64096066

Disetujui

Pembimbing

Hendra Rahmawan SKom MT
NIP 198205022009121004

Diketahui
Ketua Departemen Ilmu Komputer

Dr Ir Agus Buono MSi MKom
NIP 196607021993021001

Tanggal Lulus:

ii

PRAKATA
Alhamdulillahirobbil’alamin, segala puji bagi Allah Subhanahu Wa Ta'ala untuk semua
rahmat dan karunia yang selalu dicurahkan oleh-Nya. Selawat beserta salam agar selalu tercurahkan
kepada Nabi Muhammad Shallallahu ‘Alaihi Wa Sallam. Dengan petunjuk dan bimbingan-Nya,
akhirnya penelitian tugas akhir ini berhasil diselesaikan. Tugas akhir yang berjudul Pengembangan

Aplikasi Penandaan Digital pada SMS Menggunakan Algoritme MD5-RSA.
Tentunya penyelesaian tugas akhir ini tidak luput dari berbagai bantuan pihak lain. Bantuan
yang dilakukan langsung maupun tidak. Pada kesempatan ini, rasa terima kasih Saya ucapkan kepada
mereka semua yang di antaranya:
1 Ayahanda Azhelmi, Ibunda Yarmi Fitriza, dan Adinda Khairina Mirza beserta semua
keluarga besar atas semua doa dan dukungan yang senantiasa diberikan.
2 Bapak Hendra Rahmawan SKom MT selaku dosen pembimbing yang senantiasa
mencurahkan waktu, tenaga, dan pikiran untuk penyelesaian tugas akhir ini.
3 Bapak Endang Purnama Giri SKom MKom dan Ibu Karlina Khiyarin Nisa SKom MT
sebagai dosen penguji atas segala masukan yang diberikan.
4 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah
mereka berikan selama penulis mengikuti proses pembelajaran.
5 Seluruh staf yang telah membantu proses pembelajaran hingga selesai.
6 Lina, Yuni, Dura, Laila, Nela, Hasrul, Anis, Debby, Mono, Icha, Rany, Mamet, dan semua
teman-teman seangkatan Ilkom X4 atas persahabatan dan kebersamaan selama ini. Semoga
kebersamaan kita akan terus berjalan untuk selamanya.
7 Pihak-pihak lain yang tidak mungkin disebutkan satu persatu untuk bantuannya dalam
penyelesaian tugas akhir ini.
Akhir kata, penelitian tugas akhir ini tentu masih jauh dari sempurna. 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 dunia terlebih lagi di akhirat.
Aamiin...

Bogor, Juli 2012

Yazri Hafiz

iii

RIWAYAT HIDUP
Penulis dilahirkan di kota Medan, Sumatera Utara pada tanggal 4 Maret 1987. Penulis
dilahirkan dari pasangan Azhelmi dan Yarmi Fitriza. Penulis merupakan anak pertama dari dua
bersaudara. Penulis lulus dari SMA Negeri 1 Medan pada tahun 2005. Pada tahun yang sama, penulis
melanjutkan pendidikan di Program Diploma Universitas Gadjah Mada, Program Studi Komputer dan
Sistem Informasi. Penulis lulus dari program diploma pada tahun 2008. Pada tahun 2009, penulis
melanjutkan pendidikan di program Alih Jenis Ilmu Komputer, Institut Pertanian Bogor untuk
mendapatkan gelar sarjana.

iv


DAFTAR ISI
Halaman
DAFTAR TABEL .............................................................................................................................. vi
DAFTAR GAMBAR ......................................................................................................................... vi
DAFTAR LAMPIRAN ...................................................................................................................... vi
PENDAHULUAN
Latar Belakang................................................................................................................................ 1
Tujuan ............................................................................................................................................ 1
Ruang Lingkup ............................................................................................................................... 1
TINJAUAN PUSTAKA
Kriptografi ...................................................................................................................................... 1
Protokol .......................................................................................................................................... 1
Siklus Hidup Keamanan.................................................................................................................. 2
Penandaan Digital ........................................................................................................................... 2
Message Digest 5 (MD5) ................................................................................................................ 2
Algoritme RSA ............................................................................................................................... 3
Penandaan Digital dengan RSA ...................................................................................................... 3
Short Message Service (SMS) ......................................................................................................... 4
Java 2 Micro Edition (J2ME) .......................................................................................................... 4
METODE PENELITIAN

Identifikasi Layanan Keamanan ...................................................................................................... 5
Penentuan Kebijakan ...................................................................................................................... 5
Spesifikasi ...................................................................................................................................... 5
Desain ............................................................................................................................................ 5
Implementasi .................................................................................................................................. 5
Pengujian ........................................................................................................................................ 5
HASIL DAN PEMBAHASAN
Identifikasi Layanan Keamanan ...................................................................................................... 5
Penentuan Kebijakan ...................................................................................................................... 6
Spesifikasi ...................................................................................................................................... 6
Desain ............................................................................................................................................ 6
Implementasi .................................................................................................................................. 8
Pengujian ...................................................................................................................................... 10
Analisis Keamanan Aplikasi ......................................................................................................... 11
KESIMPULAN DAN SARAN
Kesimpulan................................................................................................................................... 11
Saran ............................................................................................................................................ 12
DAFTAR PUSTAKA ....................................................................................................................... 12
LAMPIRAN ..................................................................................................................................... 13


v

DAFTAR TABEL
Halaman
1 Pengujian fungsionalitas. ............................................................................................................. 10
2 Kinerja pembentukan penandaan. ................................................................................................ 10
3 Kinerja penerimaan dan verifikasi. .............................................................................................. 10

DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17

Siklus hidup keamanan (Bishop 2002) ........................................................................................... 2
Penandaan digital dengan RSA (Microsoft 2011) .......................................................................... 4
Skema pengiriman SMS (Bodic 2003) ........................................................................................... 4
Tahapan metode penelitian. ........................................................................................................... 5
Alur protokol. ................................................................................................................................ 6
Proses pembangkitan pasangan kunci ............................................................................................ 7
Proses pembentukan penandaan..................................................................................................... 7
Proses verifikasi penandaan. .......................................................................................................... 7
Pembangkitan pasangan kunci RSA. ............................................................................................. 8
Source code pembangkitan pasangan kunci RSA ........................................................................... 8
Aplikasi pengiriman SMS. ............................................................................................................ 8
Source code pembentukan penandaan............................................................................................ 9

Source code pengiriman SMS. ....................................................................................................... 9
Aplikasi penerima SMS. ................................................................................................................ 9
Source code penerimaan SMS. ...................................................................................................... 9
Source code verifikasi penandaan. ............................................................................................... 10
Skema penyebaran kunci publik .................................................................................................. 11

DAFTAR LAMPIRAN
Halaman
1 Parameter-parameter pasangan kunci RSA .................................................................................. 14
2 Contoh SMS beserta penandaan .................................................................................................. 17
3 Tabel hasil pengujian kinerja ....................................................................................................... 17

vi

1

PENDAHULUAN
Latar Belakang
Telepon seluler atau yang lebih dikenal
sebagai ponsel merupakan salah satu perangkat

komunikasi populer yang ada di Indonesia. Pada
masa sekarang, hampir semua lapisan
masyarakat
bisa
memilikinya.
Tingkat
penjualan ponsel pun semakin meningkat.
International
Data
Corporation
(IDC)
memperkirakan, penjualan ponsel akan tumbuh
sekitar 9% hingga 10% atau setara dengan 48,8
juta unit pada tahun 2012 ini (Wicaksono 2012).
Tingginya angka penjualan ponsel tentu
tidak lepas dari perannya dalam memudahkan
komunikasi. Akan tetapi, tindak kejahatan
menggunakan ponsel juga meningkat. Salah
satu yang marak akhir-akhir ini adalah SMS
penipuan transfer pulsa atau SMS penipuan
transfer sejumlah uang. Pelaku penipuan
mengaku sebagai kerabat korban. Tidak sedikit
ternyata orang-orang yang tertipu dengan
modus penipuan seperti ini.
Penipuan seperti ini tentu meresahkan.
Korban tidak tahu apakah pengirim pesan
benar-benar kerabatnya atau bukan. Pembuktian
yang dilakukan selama ini adalah dengan
menggunakan nomor telepon. Cara ini tidak lagi
bisa dipakai bila pengirim SMS telah mengganti
nomornya dan penerima SMS belum
memperbaharui data di dalam ponselnya. Kasus
terbaru bahkan lebih maju lagi. Pengirim pesan
dapat menggunakan nomor palsu dalam
mengirim
pesannya.
Untuk
mengatasi
permasalahan tersebut, diperlukan suatu cara
agar pengirim asli dari SMS tersebut dapat
diverifikasi kebenarannya.
Cara lain adalah dengan penggunaan
penandaan digital. Kunci untuk membentuk
penandaan digital disimpan dalam media
penyimpanan pada ponsel. Penandaan digital
kemudian disertakan pada setiap pengiriman
SMS. Penerima kemudian akan memeriksa
apakah penandaan digital tersebut benar atau
tidak. Jika benar, penerima bisa semakin yakin
bahwa pengirim SMS tersebut benar-benar
orang yang dikenalnya.
Khosiawan (2011) dalam penelitiannya telah
berhasil mengembangkan sebuah aplikasi
pengiriman SMS dengan penandaan digital.
Aplikasi ini dibuat untuk sistem operasi android
versi 2.2. Algoritme penandaan digital yang
digunakan adalah Elliptic Curve Digital
Signature Algorithm (ECDSA).
Penelitian ini akan mengembangkan aplikasi
penandaan digital pada SMS menggunakan
J2ME. Algoritme penandaan digital yang
digunakan adalah MD5-RSA. Aplikasi yang

dikembangkan akan diujikan pada perangkat
telepon seluler yang mendukung J2ME.
Hasil yang didapat dari penelitian ini adalah
penerapan penandaan digital untuk SMS.
Penandaan digital ini bermanfaat sebagai tanda
pengenal pihak pengirim pesan. Dengan adanya
penandaan digital ini, diharapkan penipuan
menggunakan SMS bisa dihindari.
Tujuan
Tujuan dari penelitian ini adalah
mengembangkan aplikasi pengiriman SMS
dengan menyertakan penandaan digital pada
SMS yang dikirimkan. Aplikasi ini juga dapat
melakukan verifikasi penandaan digital yang
disertakan.
Ruang Lingkup
Ruang lingkup yang digunakan dalam
penelitian ini adalah sebagai berikut:
1 Penggunaan penandaan digital untuk SMS.
2 Perangkat pengirim dan penerima harus
memakai aplikasi yang dikembangkan.
3 Penerima SMS diasumsikan sudah memiliki
kunci publik yang sesuai dengan kunci
pribadi pengirim.
4 Kunci publik yang digunakan diasumsikan
sudah disebar.
5 Hanya untuk satu pengirim dan satu
penerima.

TINJAUAN PUSTAKA
Kriptografi
Kriptografi adalah sebuah studi teknikteknik matematika yang berhubungan dengan
aspek keamanan informasi seperti kerahasiaan
data, keabsahan data, integritas data, serta
autentikasi asal data (Menezes et al 1997).
Tujuan dari kriptografi adalah:
1 Kerahasiaan, layanan yang digunakan untuk
menjaga isi informasi dari semua yang tidak
berwenang memilikinya.
2 Integritas data, layanan yang berkaitan
dengan pengubahan data dari pihak-pihak
yang tidak berwenang
3 Autentikasi, layanan yang berhubungan
dengan identifikasi entitas dan informasi itu
sendiri.
4 Non-repudiation, layanan untuk anti
penyangkalan sehingga dapat mencegah
terjadinya pelanggaran kesepakatan.
Protokol
Protokol merupakan rangkaian langkahlangkah yang melibatkan dua entitas atau lebih
dan didesain untuk menyelesaikan masalah

2

(Schneier 1996). Karakteristik protokol adalah
sebagai berikut:
1 Semua pihak yang terlibat dalam protokol
harus mengetahui keberadaan protokol dan
mengikuti keseluruhan langkah-langkah
yang terdapat di dalam protokol.
2 Semua pihak yang terlibat harus menyetujui
penggunaan protokol tersebut.
3 Setiap langkah yang ada di dalam protokol
harus jelas dan tidak membingungkan.
4 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 1
menunjukkan siklus hidup keamanan (Bishop
2002).
Threats

2 Policy atau kebijakan. Kebijakan yang
dibuat berdasarkan ancaman yang telah
diidentifikasi. Kebijakan-kebijakan yang
dibuat harus mampu mengatasi ancamanancaman pada layanan yang dibuat.
3 Specification atau spesifikasi. Spesifikasi
merupakan
pernyataan
fungsional.
Spesifikasi mendeskripsikan metode sistem
dalam memberikan layanan keamanan.
Spesifikasi juga menentukan kebutuhan
yang relevan dengan layanan yang dibuat.
4 Design atau desain. Pada tahap ini, apa yang
telah ada di tahap spesifikasi diterjemahkan
ke dalam komponen-komponen yang siap
untuk diimplementasikan.
5 Implementation atau implementasi. 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 operasi dan
pemeliharaan. Pada tahap ini, dijelaskan halhal tentang pengoperasian dan pemeliharaan
protokol yang telah dikembangkan.
Penandaan Digital

Policy

Specification

Design

Implementation

Operation and
Maintenance

Gambar 1 Siklus hidup keamanan
(Bishop 2002).
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 ancamanancaman tersebut.

Penandaan telah digunakan manusia sebagai
pembuktian mengenai sahnya dokumen atau
sebagai bukti kepunyaan. Konsep penandaan
yang unik antarindividu menjadi bukti autentik
suatu dokumen atau pesan. Konsep penandaan
fisik seperti itu juga digunakan pada penandaan
digital. Menurut Schneier (1996), Penandaan
digital harus memenuhi persyaratan berikut:
1 Penandaan adalah bukti yang autentik
(authentic).
2 Penandaan
tidak
dapat
dipalsukan
(unforgeable).
3 Penandaan tidak dapat dipindah dan
digunakan lagi (not reusable).
4 Dokumen yang terdapat penandaan tidak
dapat diubah (unalterable).
5 Penandaan tidak dapat disangkal (non
repudiation).
Message Digest 5 (MD5)
Message Digest 5 atau yang dikenal dengan
MD5 merupakan salah satu fungsi hash satu
arah yang populer. MD5 akan memroses teks
masukan sebesar 512 bit tiap bloknya. Masukan
ini dibagi menjadi 16 subblok yang terdiri atas
32 bit. Keluaran dari fungsi ini adalah empat
blok yang terdiri atas 32 bit. Keempat blok
tersebut kemudian digabungkan sehingga
menghasilkan satu nilai hash sepanjang 128 bit
(Schneier 1996).

3

Proses pembentukan MD5 dimulai dengan
penambahan bit-bit pengganjal (padding)
sehingga pesan kongruen dengan 448 mod 512.
Bit-bit pengganjal terdiri atas sebuah bit dengan
nilai 1 dan diikuti sederet bit dengan nilai 0.
Selanjutnya, pesan tersebut kembali ditambah
64 bit yang menyatakan panjang pesan semula
yang telah dimodulo 264. Pesan kemudian dibagi
ke dalam blok-blok sepanjang 512 bit.
Sebelum masuk ke proses pembentukan
MD5, dibentuk empat buah variabel sepanjang
32 bit. Variabel-variabel ini dikenal dengan
nama variabel penyangga MD. Keempat
variabel ini adalah:
A = 01234567
B = 89ABCDEF
C = FEDCBA98
D = 76543210
Blok-blok sepanjang 512 bit tadi diproses
dengan variabel penyangga MD. Proses ini
terdiri atas empat buah putaran dengan
menggunakan fungsi F, G, H, dan I. Masingmasing fungsi terdiri atas 16 kali operasi dasar.
Pada MD5, terdapat sebuah tabel T yang satu
elemennya digunakan dalam setiap operasi
dasar.
Operasi dasar MD5 dapat dituliskan dengan
persamaan berikut:
a  b + CLSs(a + g(b, c, d) + X[k] + T[i])
a, b, c, d
g
CLSs
X[k]

T[i]
+

= penyangga 32 bit A, B, C, D
= salah satu fungsi F, G, H, I
= circular left shift sebanyak s bit
= kelompok 32 bit ke-k dari blok
512 bit message ke-q. Nilai k = 0
sampai 15.
= elemen Tabel T ke-i (32 bit)
= operasi penjumlahan modulo 232

Setiap kali selesai satu operasi, penyangga
tersebut digeser sirkuler ke kanan. Pertukaran
penyangga tersebut mengikuti alur sebagai
berikut:
temp  d
dc
cb
ba
a  temp
Fungsi-fungsi MD5 yang terdiri atas F, G,
H, dan I adalah sebagai berikut:
F(b,c,d)  (b  c)  (~b  d)
G(b,c,d)  (b  d)  (c  ~d)
H(b,c,d)  b  c  d
I(b,c,d)  c  (b  ~ d)
Setelah putaran keempat, nilai a, b, c, dan d
ditambahkan ke A, B, C, dan D. Proses
kemudian berlanjut ke blok berikutnya. Nilai

MD5 yang didapat adalah hasil penyambungan
bit-bit A, B, C, dan D.
Algoritme RSA
RSA merupakan salah satu algoritme
enskripsi kunci publik. Algoritme ini
dinamakan RSA sesuai dengan penemunya Ron
Rivest, Adi Shamir, dan Leonard Adleman.
Keamanan algoritme RSA terletak pada sulitnya
memfaktorkan bilangan bulat yang berukuran
besar (Schneier 1996).
Langkah-langkah algoritme RSA untuk
membangkitkan kunci adalah sebagai berikut:
1 Membangkitkan dua bilangan acak prima p
dan q dengan jumlah bit yang sama.
2 Hitung nilai n = pq.
3 Hitung nilai ϕ = (p – 1)(q – 1).
4 Memilih bilangan bulat e. Nilai e merupakan
bilangan prima relatif dari ϕ dan tidak
memiliki faktor bersama kecuali 1.
Persamaan untuk nilai e dapat dituliskan
dengan gcd(e, ϕ) = 1.
5 Menghitung nilai d. Nilai d didapat dari
perhitungan ed ≡ 1 mod ϕ sehingga d = e-1
mod ϕ.
Yang menjadi kunci publik adalah pasangan (n,
e) dan yang menjadi kunci pribadi adalah d.
Pesan yang akan dikirim dianggap sebagai
bilangan integer m. Enkripsi dilakukan dengan
melakukan perhitungan c = me(mod n). C
merupakan pesan yang sudah dienkripsi. Proses
dekripsi
dilakukan
dengan
melakukan
perhitungan m = cd(mod n). Nilai m merupakan
pesan asli.
Teknik lain perhitungan RSA dikenal
dengan Chinese Remainder Theorem (CRT).
Perhitungan dengan teknik ini bisa dilakukan
lebih cepat daripada perhitungan biasa (Ireland
2011). Pada teknik ini, proses dekripsi
dilakukan dengan tambahan parameterparameter lain. Parameter-parameter tersebut
antara lain:
1 dP = e-1 mod (p-1) = d mod (p-1).
2 dQ = e-1 mod (q-1) = d mod (q-1).
3 qInv = q-1 mod p.
Ketiganya dikenal sebagai CRT exponents.
Untuk mendapatkan kembali nilai m, dilakukan
perhitungan sebagai berikut:
1 m1 = cdP mod p.
2 m2 = cdQ mod q.
3 h = qInv.(m1 - m2) mod p.
4 m = m2 + h.q.
Penandaan Digital dengan RSA
Dalam penandaan digital menggunakan
RSA, pesan yang akan dikirim dicari nilai
digest-nya terlebih dahulu. Digest yang didapat
kemudian dienkripsi menggunakan kunci

4

pribadi. Hasil enkripsi digest ini akan menjadi
penandaan yang kemudian disertakan bersama
dengan pesan aslinya. Pesan beserta penandaan
ini yang kemudian dikirimkan.
Verifikasi penandaan dibuktikan bersamaan
dengan integritas data. Untuk mendekripsi
penandaan, dibutuhkan kunci publik. Hasil
dekripsi ini merupakan nilai digest yang
dihasilkan pengirim. Pesan yang diterima juga
dicari nilai digest-nya. Kedua digest yang
didapat kemudian dibandingkan. Digest yang
sama akan memverifikasi penandaan sekaligus
membuktikan integritas data. Bila kedua digest
berbeda, ada kemungkinan terjadi pengubahan
pesan
atau
kesalahan
kunci.
Skema
pembentukan penandaan dan
verifikasi
penandaan ditunjukkan pada Gambar 2
(Microsoft 2011).

Gambar 2 Penandaan digital dengan RSA
(Microsoft 2011).
Penandaan digital menggunakan kunci
pribadi untuk enkripsi dan kunci publik untuk
dekripsi. Konsep ini berbeda dengan kriptografi
biasa. Perbedaan ini terjadi karena perbedaan
konsep di antara keduanya. Pada penandaan
digital, pihak yang memiliki kunci sekaligus
pembentuk penandaan mengharapkan sebanyak
mungkin pihak yang bisa melakukan verifikasi
terhadap dirinya. Pada kriptografi biasa, pihak
pemilik kunci mengharapkan hanya dirinya
sendiri yang bisa membaca pesan yang
dikirimkan kepadanya.
Short Message Service (SMS)
Layanan Short Message Service, atau yang
lebih dikenal dengan nama 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. Satu pesan SMS

memiliki panjang 140 Bytes. (Martinez et al
2007).
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 3 (Bodic 2003).

Gambar 3 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
antaroperator
telekomunikasi.
Java 2 Micro Edition (J2ME)
Java 2 Micro Edition atau yang lebih
dikenal dengan J2ME merupakan platform Java
yang dikhususkan untuk perangkat kecil. Pada
J2ME terdapat java virtual machine yang
didesain khusus dengan library pengganti yang
berukuran lebih kecil. Keterbatasan jumlah
memory dan media penyimpanan pada telepon
seluler mengharuskan ukuran aplikasi yang
kecil. Optimisasi dapat dilakukan menggunakan
obfuscator yang terdapat pada J2ME. Proses
obfuscating akan membuat package, class,
variable, dan method menjadi lebih ringkas dan
membuat ukuran aplikasi menyusut. Semua itu
dibuat agar J2ME menjadi platform yang cocok
untuk PDA atau telepon seluler. J2ME juga
memiliki library kriptografi untuk menangani
permasalahan keamanan (Yuan 2003).
Salah satu library kriptografi yang dapat
digunakan di J2ME adalah Bouncy Castle
lightweight cryptography API. Bouncy Castle
merupakan library kriptografi yang bersifat
open-source sehingga dapat diperoleh secara

5

gratis bahkan free. Bouncy Castle mendukung
berbagai operasi kriptografi seperti enkripsi,
dekripsi, penandaan digital, berbagai bentuk
fungsi hash, dan lain-lain. Bouncy Castle juga
mendukung skema pengkodean Base64. Base64
merupakan
skema
pengkodean
untuk
merepresentasikan data biner kedalam format
teks.

METODE PENELITIAN
Penelitian ini melalui serangkaian tahap.
Ada lima tahap yang digunakan dalam
penelitian ini. Metode penelitian ini didapat
berdasarkan siklus hidup keamanan. Tahapan
tersebut meliputi identifikasi layanan keamanan,
penentuan kebijakan, spesifikasi, desain, dan
implementasi. Tahapan metode penelitian
ditunjukkan pada Gambar 4.
Identifikasi Layanan
Keamanan

Penentuan Kebijakan

diterapkan di aplikasi penandaan digital pada
SMS yang dikembangkan agar dapat mengatasi
ancaman keamanan yang ada.
Spesifikasi
Pada tahap ini, ditentukan berbagai elemen
yang ingin diterapkan pada aplikasi penandaan
digital pada SMS. Elemen-elemen tersebut
seperti hal-hal yang dilakukan oleh aplikasi
penandaan digital pada kondisi-kondisi tertentu.
Desain
Pada tahap ini, dilakukan perancangan
aplikasi penandaan digital pada SMS.
Perancangan dilakukan berupa perancangan
protokol, perancangan proses, dan cara kerja
aplikasi penandaan digital pada SMS.
Implementasi
Pada tahap ini, dilakukan implementasi
sesuai dengan desain yang telah dilakukan.
Implementasi dilakukan dengan menggunakan
J2ME karena aplikasi dikembangkan untuk
digunakan di telepon seluler. Implementasi
penandaan
digital
dilakukan
dengan
memanfaatkan library kriptografi yang ada di
J2ME.
Pengujian

Spesifikasi

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

Desain

HASIL DAN PEMBAHASAN
Identifikasi Layanan Keamanan
Implementasi

Pengujian

Gambar 4 Tahapan metode penelitian.
Identifikasi Layanan Keamanan
Pada tahap ini, dilakukan identifikasi
layanan keamanan penandaan digital pada SMS
yang akan digunakan. Layanan ini diharapkan
dapat mengatasi ancaman keamanan berupa
penipuan yang diperkirakan akan muncul.
Penentuan Kebijakan
Pada tahap ini, ditentukan kebijakankebijakan yang akan diterapkan pada aplikasi
dikembangkan. Kebijakan ini harus dapat

Masalah keamanan terkait pengembangan
sistem ini adalah tentang penipuan dengan
SMS. Penipuan dilakukan dengan melakukan
pemalsuan identitas pengirim. Pengirim
mengaku sebagai orang yang dikenal korban
lalu melakukan penipuan. Masalah lainnya
adalah modifikasi isi pesan yang dikirim.
Modifikasi pesan bisa terjadi jika pesan berhasil
disadap lalu diubah untuk kemudian dikirim
kembali.
Masalah
pemalsuan
terkait
dengan
autentikasi pesan. Masalah modifikasi terkait
integritas data. Layanan penandaan digital pada
SMS didesain untuk dapat memberikan layanan
autentikasi dan integritas data untuk mengatasi
masalah penipuan. Layanan ini juga dapat
memberikan fungsi anti penyangkalan. Layanan
anti penyangkalan memungkinkan pihak
pengirim tidak dapat menyangkal sebagai
pemilik pesan yang diterima oleh penerima.

6

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.
 Memberikan penandaan pada SMS yang
dikirimkan.
Penerima bertindak juga sebagai pihak yang
melakukan verifikasi. Hak dari penerima
adalah:
 Menerima kunci publik dari pasangan kunci
pribadi pembentuk penandaan.
 Melakukan verifikasi penandaan dan
memeriksa status verifikasi
2 IT policy
Pasangan kunci RSA akan disimpan di
media penyimpanan pada telepon seluler.
Pengirim sebagai pihak penanda akan
menyimpan kedua pasangan kunci RSA, kunci
publik dan kunci pribadi. Penerima sebagai
pihak yang melakukan verifikasi hanya
meyimpan kunci publik.
3 General policy
Kebijakan lain yang diterapkan adalah
sebagai berikut:
 Pengirim tidak diijinkan untuk menyebarkan
atau mempertukarkan kunci pribadi yang
dimilikinya.
 Lokasi penyimpanan pasangan kunci RSA
tidak boleh diubah.
 Nama file pasangan kunci RSA tidak boleh
diubah.
 Jika pengirim membangkitkan kunci lagi,
kunci yang lama akan dianggap tidak valid
dan akan ditulis-ulang dengan kunci yang
baru.
 Pengirim diasumsikan memiliki kunci yang
unik untuk dirinya sendiri.
Spesifikasi
Aplikasi penandaan digital pada SMS yang
dikembangkan dapat dibagi menjadi 3 bagian.
Ketiga bagian itu adalah pembangkitan
pasangan kunci, pembentukan penandaan pada
SMS yang dikirimkan, dan verifikasi
penandaan. Pembangkitan pasangan kunci
dilakukan dengan algoritme RSA. Penandaan
yang digunakan didapat dengan menggunakan
teknik MD5-RSA. Pengiriman SMS dilakukan
melalui jaringan telekomunikasi yang ada. SMS
dapat dikirimkan ke semua operator dengan
tarif yang sesuai dengan peraturan yang berlaku.
SMS yang terdapat penandaan dapat diverifikasi
oleh aplikasi penerima. Hasil verifikasi akan

menunjukkan apakah SMS tersebut valid atau
tidak. Hasil dari verifikasi penandaan dapat
dijadikan sebagai cara untuk menjamin
autentikasi SMS dan integritas SMS.
Desain
Tahapan desain merupakan proses yang
dilakukan untuk merancang pembuatan sistem.
Aplikasi yang dikembangkan terdiri atas tiga
bagian. Ketiga bagian itu adalah pembangkitan
pasangan kunci RSA, penyertaan penandaan
pada SMS, dan verifikasi penandaan pada SMS.
Ketiga bagian tersebut mengikuti protokol yang
ditunjukkan pada Gambar 5.
Mulai

Pembangkitan
Pasangan Kunci RSA

Penyertaan penandaan
digital pada SMS

Verifikasi penandaan
digital pada SMS

Selesai

Gambar 5 Alur protokol.
Proses pembangkitan pasangan kunci
mengikuti algoritme RSA yang telah ada.
Mulanya, dibangkitkan dua bilangan prima p
dan q. Hitung hasil perkaliannya dan didapat
nilai n = pq. Pilih sebuah bilangan e yang
didapat dari gcd (e, ϕ) = 1. Nilai ϕ didapat dari
ϕ = (p – 1)(q – 1). Hitung nilai d = e-1 mod ϕ.
Berikutnya, dihitung nilai Chinese Remainder
Theorem (CRT). Nilai ini terdiri atas dP = d
mod (p-1), dQ = d mod (q-1), dan qInv = q-1
mod p. Nilai-nilai yang sudah didapat akan
menjadi parameter kunci publik dan kunci
pribadi. Nilai-nilai ini kemudian ditulis dan
disimpan
dalam
media
penyimpanan.
Pembangkitan pasangan kunci RSA ditunjukkan
pada Gambar 6.
Desain proses pembentukan penandaan
ditunjukkan pada Gambar 7. Tahap-tahap yang
dilakukan pada proses pembentukan penandaan
adalah sebagai berikut:
1 Masukan adalah SMS yang akan dikirim.
Pada tahap ini, pembangkitan pasangan
kunci RSA sudah dilakukan dan disimpan di
dalam media penyimpanan telepon seluler.

7

Mulai

Mulai

Nilai p dan q
SMS

n=pxq
Φ = (p – 1)(q – 1)
gcd(e, ϕ) = 1

Fungsi MD5

d = e-1 mod ϕ
dP = d mod (p-1)
dQ = d mod (q-1)
qInv = q-1 mod p

Parameter
Kunci Pribadi

Digest

Enkripsi

Menulis parameter ke
media penyimpanan

Penyertaan
penandaan

Selesai

Gambar 6 Proses pembangkitan pasangan
kunci.
2 Pada SMS dilakukan penghitungan nilai
hash menggunakan fungsi MD5. Nilai hash
ini dikenal juga dengan digest.
3 Digest yang didapat kemudian dienkripsi
menggunakan parameter kunci pribadi yang
didapat dari pembangkitan pasangan kunci
RSA.
4 Hasil enkripsi digest dijadikan penandaan
untuk SMS yang akan dikirim. Penandaan
digital ikut disertakan dengan SMS untuk
dikirim ke penerima.
Parameter kunci publik yang didapat dari
pembangkitan pasangan kunci RSA akan
digunakan untuk melakukan dekripsi di pihak
penerima. Parameter kunci publik diasumsikan
sudah dikirim dan diterima oleh pihak penerima
pesan.
Desain
proses
verifikasi
penandaan
ditunjukkan pada Gambar 8. Tahap-tahap
verifikasi penandaan adalah sebagai berikut:
1 Masukan pada penerima adalah SMS yang
telah terdapat penandaan dan kunci publik
yang didapat dari proses pembangkitan
pasangan kunci RSA. Penanda diekstraksi
terlebih dahulu dari SMS. Ekstraksi ini akan
memisahkan SMS dengan penandaan.
2 Penandaan
didekripsi
menggunakan
parameter kunci publik. Dari hasil dekripsi
ini akan didapat digest dari pengirim.
3 Pada SMS yang diterima juga dilakukan
penghitungan nilai hash untuk mendapat
digest SMS di sisi penerima.
4 Digest yang didapat penerima kemudian
dibandingkan dengan digest yang didapat
dari pengirim. Bila digest cocok, dapat

Selesai

Gambar 7 Proses pembentukan penandaan.
dijamin SMS tersebut valid dan pengirim
juga berhasil diverifikasi.
5 Bila digest yang dibandingkan tidak cocok,
SMS tersebut tidak valid. Ada kemungkinan
kalau kunci yang digunakan untuk dekripsi
tidak cocok atau terjadi pengubahan pesan
oleh pihak-pihak yang tidak diinginkan.
Mulai

Ekstraksi
penandaan

SMS

Parameter
Kunci Publik

Penandaan

Fungsi MD5

Dekripsi

Digest
SMS

Digest dari
pengirim

Tidak
Sama ?

SMS tidak valid

Ya
SMS Valid.
Pengirim berhasil
diverifikasi

Selesai

Gambar 8 Proses verifikasi penandaan.

8

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 AMD APU A6-3400 1.40 GHz.
2 RAM 8 GB (7.48 GB Usable).
3 Harddisk kapasitas 750 GB.
Perangkat lunak yang digunakan adalah
sebagai berikut:
1 Sistem operasi Microsoft Windows 7
Ultimate 64 bit.
2 JDK 7 Update 1 32 bit.
3 Netbeans IDE 7.0.1.
4 Bouncy Castle lightweight cryptography
API 1.46 untuk J2ME.
Perangkat uji untuk mencoba aplikasi ini
adalah telepon seluler. Telepon seluler yang
digunakan adalah Sony Ericsson W660i. Ponsel
ini menggunakan sistem operasi proprietary
milik Sony Ericsson. Perangkat uji lain adalah
Nokia 300. Ponsel ini dilengkapi dengan
processor berkecepatan 1 GHz dan layar sentuh.
Ponsel ini menggunakan sistem operasi Nokia
S40 milik Nokia. Kedua ponsel mendukung
J2ME.
Pembangkitan pasangan kunci RSA
dilakukan di awal dan hanya dilakukan sekali.
Bila terjadi pembangkitan kunci lagi, kunci
yang lama akan dianggap tidak valid. Kunci
yang lama tersebut ditulis ulang dengan kunci
yang baru. Kunci yang sudah dibentuk akan
disimpan pada media penyimpanan telepon
seluler. Pembangkitan pasangan kunci RSA
ditunjukkan pada Gambar 9.

dan kunci pribadi sehingga fungsi ini diganti
dengan menyimpan nilai parameter-parameter
tersebut (Yuan 2003). Nilai parameterparameter tersebut ditunjukkan pada Lampiran
1. Source code untuk pembangkitan pasangan
kunci RSA ditunjukkan pada Gambar 10.
BigInteger exp = new BigInteger("11",
16);
SecureRandom srand = new SecureRandom();
RSAKeyGenerationParameters params = new
RSAKeyGenerationParameters(exp, srand,
1024, 80);
RSAKeyPairGenerator rsaKeyPairGen = new
RSAKeyPairGenerator();
rsaKeyPairGen.init(params);
AsymmetricCipherKeyPair keyPair =
rsaKeyPairGen.generateKeyPair();
RSAPrivateCrtKeyParameters rsaPrivateKey
= (RSAPrivateCrtKeyParameters)
keyPair.getPrivate();

Gambar 10 Source code pembangkitan
pasangan kunci RSA.
Parameter yang sudah disimpan dapat
digunakan untuk pembangkitan penandaan dan
verifikasi. Pada penandaan digital, enkripsi
digest dilakukan oleh kunci pribadi. Kunci
pribadi dibentuk oleh semua parameter yang
disimpan (modulus, pubExp, privExp, p, q, dP,
dQ, dan qInv). Aplikasi pengiriman SMS
ditunjukkan pada Gambar 11.

Gambar 11 Aplikasi pengiriman SMS.

Gambar 9 Pembangkitan pasangan kunci RSA.
Hasil dari pembangkitan pasangan kunci ini
berupa nilai parameter modulus, pubExp,
privExp, p, q, dP, dQ, dan qInv. Bouncy Castle
tidak dapat langsung menyimpan kunci publik

Destination merupakan nomor tujuan
pengiriman. Port merupakan nomor port
spesifik yang digunakan untuk penerimaan
SMS. Nomor port ini perlu dituliskan karena
port default untuk menerima SMS ditutup dari
pabrikan telepon seluler. Port default ini hanya
bisa diakses oleh aplikasi SMS bawaan dari
telepon seluler. Message merupakan bagian
tempat menuliskan pesan yang akan dikirim.
Proses pembentukan penandaan dilakukan
setelah perintah pengiriman pesan (send)
diberikan ke telepon seluler. Penandaan yang
didapat masih dalam bentuk byte string. Bentuk
ini dipenuhi dengan karakter yang tidak dikenali

9

telepon seluler. Penandaan akan di-encode
dengan base64 untuk mendapatkan bentuk
teksnya. Proses ini juga akan memperpendek
penandaan. Pesan dikirim setelah penyertaan
penandaan selesai dilakukan.
Source code pembentukan penandaan
ditunjukkan pada Gambar 12. Source code
untuk pengiriman pesan ditunjukkan pada
Gambar 13.
private static byte[]
getSignature(byte[] plain,
RSAPrivateCrtKeyParameters privateKey){
byte[] signatureByte = null;
try {
MD5Digest md5Engine = new MD5Digest();
RSAEngine rsaEngine = new RSAEngine();
PSSSigner signer = new
PSSSigner(rsaEngine, md5Engine, 64);
signer.init(true, privateKey);
signer.update(plain, 0, plain.length);
signatureByte =
signer.generateSignature();
}catch
(org.bouncycastle.crypto.CryptoException
ex){System.out.println("CryptoException
error: "+ex);
} catch (DataLengthException ex)
{System.out.println("DataLengthException
error: "+ex);
}
return signatureByte;
}

Gambar 12 Source code pembentukan
penandaan.
Thread thread = new Thread(new
Runnable() {
public void run() {
MessageConnection msgConnection;
try {
msgConnection =
(MessageConnection)Connector.open("sms:/
/"+destination+":" + port);
TextMessage textMessage =
(TextMessage)msgConnection.newMessage
(MessageConnection.TEXT_MESSAGE);
textMessage.setPayloadText(message+delim
iter+sign);
msgConnection.send(textMessage);
Alert a = new Alert("Success!","Message
sent successfully",
null,AlertType.INFO);
a.setTimeout(2000);
display.setCurrent(a);
msgConnection.close();
} catch (IOException ex)
{System.out.println("Send Message error
"+ ex);
}
}
});
thread.start();

Gambar 13 Source code pengiriman SMS.
Proses verifikasi penandaan dilakukan pada
bagian penerima. Kunci publik yang digunakan
untuk dekripsi dibentuk oleh parameter modulo
dan pubExp. Kedua parameter ini harus berupa
parameter yang sama dari bagian pengirim agar

hasil verifikasi benar (true). Aplikasi
penerimaan SMS ditunjukkan pada Gambar 14.

Gambar 14 Aplikasi penerima SMS.
Aplikasi ini tidak dapat menerima SMS
secara otomatis karena tidak ada akses ke
registry sistem. SMS baru dapat diterima jika
perintah listen diberikan. Perintah listen akan
menjalankan fungsi untuk mendengarkan port
tertentu yang telah ditentukan. Port penerima
ini harus sama dengan nomor port yang
ditentukan pada pengirim. Saat SMS diterima,
aplikasi ini akan memisahkan bagian pesan
dengan bagian penandaan. Bagian pesan akan
ditampilkan sementara bagian penandaan
diverifikasi. Bagian penandaan ini sebelumnya
di-decode terlebih dahulu dengan base64 untuk
mendapatkan kembali bentuk byte string.
Source code untuk menerima SMS
ditunjukkan pada Gambar 15. Source code
untuk verifikasi penandaan ditunjukkan pada
Gambar 16.
public void
notifyIncomingMessage(MessageConnection
conn) {
Message message;
try {
message = conn.receive();
senderAddress = message.getAddress();
formReceiver.append(senderAddress+"\n");
if (message instanceof TextMessage) {
TextMessage tMessage =
(TextMessage)message;
String strMessage =
((TextMessage)tMessage).getPayloadText()
;
split(strMessage);
} else {
formReceiver.append("Unknown Message
received\n");
}
} catch (InterruptedIOException e)
{formReceiver.append("InterruptedIOExcep
tion: "+e);
} catch (IOException e)
{formReceiver.append("IOException: "+e);
}}

Gambar 15 Source code penerimaan SMS.

10

public boolean verifySignature(byte[]
inputByte, byte[] signature,
RSAKeyParameters publicKey) {
MD5Digest md5Engine = new MD5Digest();
RSAEngine rsaEngine = new RSAEngine();
PSSSigner signer = new
PSSSigner(rsaEngine, md5Engine, 64);
signer.init(false, publicKey);
signer.update(inputByte, 0,
inputByte.length);
return
signer.verifySignature(signature);
}

Gambar 16 Source code verifikasi penandaan.
Pengujian
Pengujian awal dilakukan dengan cara
pembangkitan pasangan kunci RSA. Ponsel
Sony Ericsson W660i membutuhkan waktu
hingga 4 menit untuk pembangkitan kunci.
Ponsel Nokia 300 membutuhkan waktu yang
jauh lebih singkat, sekitar 15 detik. Perbedaan
waktu tersebut kemungkinan karena ponsel
Nokia memiliki kemampuan processor yang
lebih baik dari ponsel Sony Ericsson. Ponsel
Nokia juga memiliki teknologi yang lebih baik.
Waktu yang dibutuhkan untuk pembentukan
penandaan dan verifikasi berjalan cepat. Lama
pengiriman SMS bergantung pada kemampuan
jaringan dan tidak ada perbedaan dengan
pengiriman SMS biasa.
Pengujian fungsionalitas yang dilakukan
terdiri atas 6 pengujian. Pengujian ditunjukkan
pada Tabel 1.
Tabel 1 Pengujian fungsionalitas
Kasus
1
2
3
4
5
6

Parameter
kunci pada
W660i
Valid

Valid
(Pasangan
dari N300)
Valid (Milik
sendiri)
Valid
Invalid
Invalid

Parameter
kunci pada
Nokia 300
Valid
(Pasangan
dari W660i)
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, ponsel penerima
menyimpan parameter kunci publik yang sesuai
dengan parameter kunci pribadi yang
membentuk penandaan. Pengujian ketiga
dilakukan dengan cara kedua ponsel memiliki
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 invalid tidak menghalangi
pembentukan penandaan.
Penandaan yang dihasilkan menjadi bagian
dari SMS dan menghasilkan overhead
sepanjang 172 karakter. Ini berarti penandaan
tersebut sudah menghabiskan lebih dari satu
bagian SMS. Overhead sepanjang itu
kemungkinan berasal dari bentuk penandaan
yang awalnya berupa byte string. Contoh SMS
beserta overhead penandaan ditunjukkan pada
Lampiran 2.
Pengujian
kinerja
dilakukan
untuk
mengetahui kecepatan pembentukan penandaan
dan verifikasi. Pengujian ini dilakukan dengan
bantuan stopwatch. Pengujian dengan stopwatch
tentu menghasilkan bias antara penekanan
tombol dengan waktu aslinya. Pengujian
dilakukan tiga kali dan dihitung waktu rataratanya. Hasil pengujian kinerja pembentukan
penandaan ditunjukkan pada Tabel 2.
Tabel 2 Kinerja pembentukan penandaan
Panjang
SMS
2 SMS
3 SMS
4 SMS

Sony Ericsson
W660i
1.97 detik
2.00 detik
1.93 detik

Nokia 300
1.37 detik
1.40 detik
1.30 detik

Hasil pengujian ini menunjukkan waktu
pembentukan penandaan tidak dipengaruhi
panjang pesan. Pengujian menunjukkan
perbedaan waktu yang sangat kecil. Nokia 300
dengan teknologi yang lebih baik mampu
menghasilkan penandaan dengan waktu yang
lebih singkat.
Penghitungan waktu verifikasi dilakukan
setelah pesan berhasil dikirim. Cara ini tentu
menghasilkan bias yang diakibatkan waktu
pengiriman. Bias pada pengujian ini menjadi
semakin besar
karena ditambah bias
penggunaan stopwatch. Untuk memperkecil
pengaruh kapasitas jaringan, digunakan produk
yang sama dari satu operator. Hasil pengujian
kinerja penerimaan SMS beserta verifikasi
penandaan ditunjukkan pada Tabel 3.
Tabel 3 Kinerja penerimaan dan verifikasi
Panjang
SMS
2 SMS
3 SMS
4 SMS

Sony Ericsson
W660i
4.03 detik
3.53 detik
3.63 detik

Nokia 300
11.37 detik
12.23 detik
12.67 detik

Pada ponsel Sony Ericsson W660i,
penerimaan dan verifikasi tidak terlalu
dipengaruhi panjang pesan. Pengujian pada
ponsel Nokia 300 menghasilkan waktu yang
termasuk lama. Kemungkinan lamanya waktu

11

ini disebabkan oleh lamanya penerimaan pesan,
bukan karena verifikasi. Lamanya penerimaan
pesan ini kemungkinan karena adanya skema
proteksi tertentu pada ponsel Nokia 300.
Proteksi tersebut menghambat pesan yang
masuk melalui aplikasi yang dikembangkan.
Hasil pengujian kinerja ini secara lengkap
ditunjukkan pada Lampiran 3.
File jar (Java Archive) yang didapat dari
penggunaan library Bouncy Castle ini
berukuran lebih besar dari file jar tanpa Bouncy
Castle. Ini merupakan hal yang wajar karena
ada tambahan library yang digunakan. Ukuran
file jar sebelum tambahan library berkisar 4 KB
sementara besar file jar sesudah tambahan
library berkisar 25 KB. Ukuran file jar ini masih
dalam tahap wajar karena ada proses
obfuscating pada saat proses build application
di Netbeans. Tanpa proses obfuscating, ukuran
file dengan tambahan library akan membengkak
hingga 1 MB. Proses obfuscating ini juga
berfungsi untuk menghindari security exception
karena ada kelas Java core language dalam
Bouncy Castle yang tidak didukung oleh J2ME
(Yuan 2003).
Analisis Keamanan Aplikasi
Aplikasi yang sudah selesai juga perlu
dianalisis keamanannya. Beberapa di antaranya
adalah:
1 Penyadapan parameter kunci melalui man in
the middle attack. Bila kunci berhasil
disadap dan ditukar dengan kunci palsu,
verifikasi yang seharusnya benar akan
menjadi salah. Solusi penyerangan ini
adalah dengan menggunakan sertifikasi
kunci dari pihak ketiga.
2 Media penyimpanan tempat menyimpan
parameter kunci hilang. Penanganannya
dengan pembangkitan kunci baru yang akan
menjadikan kunci lama tidak valid.
Parameter kunci ini juga perlu diberi masa
kadaluarsa. Penanganan seperti ini tentu
memerlukan
sertifikasi
kunci
yang
dikeluarkan pihak ketiga. Solusi lainnya
dengan melakukan enkripsi pada tempat
penyimpanan parameter kunci.
3 Penyebaran kunci publik memerlukan pihak
ketiga sebagai tempat menyimpan kunci.
Pihak ketiga ini bisa juga sebagai penerbit
sertifikat kunci. Kunci publik yang telah
dibangkitkan diunggah ke server tempat
penyimpanan kunci. Kunci-kunci ini dapat
diunduh oleh pihak-pihak yang memerlukan
kunci publik tersebut. Skema penyebaran
kunci ditunjukkan pada Gambar 17.
4 Terjadi modifikasi parameter pasangan
kunci dengan memasangkan parameter yang

Kunci Publik

Key
Server

SMS

Kunci Publik

Gambar 17 Skema penyebaran kunci publik
bukan pasangannya. Library Bouncy Castle
yang digunakan, sudah memberikan
ketahanan terhadap ancaman modifikasi
parameter kunci ini. Pasangan parameter
yang salah tidak menghalangi proses
pembentukan penandaan namun verifikasi
yang didapat tetap salah (false).
5 Dari segi kriptografi, aplikasi sudah dapat
melayani integritas data, autentikasi, dan
non-repudiation. Aplikasi tidak dapat
melayani kerahasiaan data karena tidak ada
layanan enkripsi SMS.

KESIMPULAN DAN SARAN
Kesimpulan
Berdasarkan penelitian yang dilakukan
diperoleh kesimpulan sebagai berikut:
1 Penandaan digital dapat diterapkan pada
SMS menggunakan J2ME. Algoritme yang
digunakan untuk penandaan digital adalah
MD5-RSA. Bouncy Castle lightweight
cryptography
API
sebagai
library
kriptografi
yang
digunakan
telah
menyediakan sarana untuk menerapkan
penandaan digital. Pen