IMPLEMENTASI KRIPTOGRAFI MENGGUNAKAN ALGORITMA RSA UNTUK MENGAMANKAN SMS BERBASIS J2ME
Oleh : Kiki Maria Al Qibtiyah 106091002941
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UIN SYAHID JAKARTA JAKARTA 2010
ABSTRAK
KIKI MARIA AL QIBTIYAH, Implementasi Kriprografi Menggunakan Algoritma RSA Untuk Mengamankan SMS Berbasis J2ME, dibimbing oleh Khodijah Hulliyah, M.Si dan Fitri Mintarsih,M.Kom. Pada tugas akhir ini dibangun suatu perangkat lunak pengiriman teks yang berguna untuk meningkatkan keamanan pesan yang terjadi pada komunikasi melalui SMS. SMS merupakan suatu komunikasi yang saat ini banyak digunakan oleh semua orang, karena efisien dan biayanya yang murah. SMS yang bersifat penting sangat diharapkan dalam pengirimannya dapat dikirimkan dengan aman kepada penerima, akan tetapi dengan fasilitas sekarang sangat dimungkin informasi SMS dapat dibaca oleh pihak-pihak tertentu. Oleh karena itu, diperlukan adanya suatu mekanisme yang dapat menjaga kerahasiaan pesan penting tersebut. Salah satu metode menjaga kerahasian pesan yakni algoritma RSA, yang memfaktorkan 2 bilangan prima yang besar yang hanya dapat dihitung oleh komputer. Pada tugas akhir ini, penulis berusaha mengimpelementasikan aplikasi enkripsi SMS pada handphone yang berbasis Java 2.0 dengan menggunakan simulasi wireless toolkit 2.5.2. Aplikasi enkripsi ini dianalisis dari waktu respon dan penggunaan memori serta keamanan pada enkripsi dan dekripsi pesan. Dari hasil percobaan, algoritma RSA merupakan salah satu algoritma yang tepat untuk digunakan dalam proses enkripsi pada handphone. Tetapi, dalam hal ini penulis menekankan pada hasil implementasi kriptografi RSA ini bukan segi keamanan data.
Kata Kunci : SMS, RSA, J2ME, enkripsi, dekripsi
v
vi
DAFTAR ISI
Halaman LEMBAR JUDUL ........................................................................................
i
LEMBAR PERSETUJUAN DOSEN ...........................................................
ii
HALAMAN PENGESAHAN. ......................................................................
iii
HALAMAN PERNYATAAN.......................................................................
iv
ABSTRAK ...................................................................................................
v
KATA PENGANTAR.. ................................................................................
vi
DAFTAR ISI ...............................................................................................
viii
DAFTAR GAMBAR ...................................................................................
xii
DAFTAR TABEL ........................................................................................
xiv
DAFTAR LAMPIRAN ................................................................................
xv
BAB I.
BAB II.
PENDAHULUAN ......................................................................
1
1.1 Latar Belakang ......................................................................
1
1.2 Rumusan Masalah .................................................................
2
1.3 Batasan Masalah ....................................................................
4
1.4 Tujuan dan Manfaat Penulisan………....................................
4
1.4.1 Tujuan Penulisan...........................................................
4
1.4.2 Manfaat Penulisan.........................................................
4
1.5 Metode Penelitian ..................................................................
5
1.5.1 Metode Pengumpulan Data. ..........................................
5
1.5.2 Metode Pengembangan Sistem. .....................................
6
1.6 Sistematika Penulisan ............................................................
8
LANDASAN TEORI ..................................................................
10
2.1 Keamanan Sistem Komputer..................................................
10
2.1.1 Ancaman Keamanan .....................................................
10
viii
2.1.2 Aspek-aspek Keamanan Komputer................................
11
2.3 Teknik-teknik Pengenalan Kriptografi. ..................................
12
2.3 Pengenalan Sistem Kriptografi...............................................
12
2.3.1 Prinsip Dasar Kriptografi ..............................................
23
2.3.2 Terimnologi Dalam Kriptografi.....................................
24
2.4 Algoritma Kriptografi ............................................................
25
2.4.1 Algoritma Kriptografi simetris .....................................
26
2.4.2 Algoritma Kriptografi asimetris ....................................
27
2.5 Algoritma RSA......................................................................
28
2.5.1 Pembangkitan Kunci ....................................................
29
2.5.2 Proses Enkripsi SMS.....................................................
30
2.5.3 Proses Dekripsi SMS.....................................................
30
2.5.4 Teori Bilangan RSA. .....................................................
30
2.5.4.1 Pembagi Bersama. ...................................................
30
2.5.4.2 Pembagi Bersama Terbesar. ....................................
30
2.5.4.3 Bilangan Prima........................................................
31
2.5.4.4 Aritmetika Modulo..................................................
31
2.6 Standard ASCII .....................................................................
31
2.7 Java. ......................................................................................
38
2.8 Java2 Micro Edition (J2ME). .................................................
39
2.8.1 Pengertian J2ME...........................................................
39
2.8.2 Connected Limited Configuration (CLDC)....................
41
2.8.3 Connected Device Configuration (CDC). ......................
41
2.8.4 Mobile Information Device Profile (MIDP)...................
42
2.8.5 Kilobyte Virtual Machine (KVM)..................................
42
2.8.6 C-Virtual Machine. .......................................................
43
2.8.7 MIDLET. ......................................................................
43
2.8.7.1 Daur Hidup Midlet. .................................................
43
2.8.7.2 Emulator Perangkat MIDLET..................................
44
ix
2.8.8 JAD (Java Application Descriptor). ..............................
44
2.8 RMS (Record Management System).......................................
44
2.9 UML (Unified Modelling Language). ....................................
45
2.9.1 Definisi UML................................................................
45
2.10 SMS (ShorMessage Service ). ..............................................
52
2.11 RUP (Rational Unified Process)...........................................
59
2.11.1 Fase RUP. ...................................................................
61
2.12 Skripsi Pembanding. ............................................................
63
BAB III. METODE PENELITIAN ............................................................
64
3.1 Metode Pengumpulan Informasi dan Data …………………..
64
3.2 Metodologi Pengembangan Sistem ........................................
66
3.2.1 Inception ....................................................................
67
3.2.2 Elaboration.................................................................
67
3.2.3 Construction...............................................................
69
3.2.3.1 Implementasi. .......................................................
70
3.2.3.1.1 Coding............................................................
70
3.2.3.1.2 Testing............................................................
70
3.2.4 Transition...................................................................
70
BAB IV. ANALISA DAN PERANCANGAN SISTEM .............................
73
4.1 Inception................................................................................
73
4.2 Elaboration............................................................................
74
4.2.1 Analisis. ........................................................................
74
4.2.1.1 Analisis Masalah....................................................
74
4.2.1.2 Analisis Perayaratan...............................................
79
4.3.1.3 Analisis Keputusan. ...............................................
83
4.2.2 Perancangan Aplikasi.. ..................................................
85
4.2.2.1 Identifikasi Use Case dan Aktor ........................
85
x
4.4.2.2 Use Case Diagram. ............................................
87
4.4.2.3 Use Case Scenario. ............................................
88
4.4.2.4 Activity Diagram. ..............................................
93
4.4.2.5 Sequence Diagram.............................................
98
4.4.2.6 Class Diagram. .................................................. 103 4.4.2.7 Spesifikasi Sistem yang diusulkan ..................... 109 4.4.2.7.1 Rancangan Pembangkitan Kunci.................. 109 4.4.2.7.2 Contoh Kasus RSA. ..................................... 116 4.2.2. 8 Perancangan User Interface. ............................. 123 4.3Contruction....................................................................... 127 4.3.1 Implementasi Sistem . .............................................. 127 4.3.1.1 Coding Aplikasi................................................ 128 4.3.1.2 Testing ............................................................. 128 4.4 Transition. ....................................................................... 135 4.4.1 User Manual. ............................................................ 135
BAB V.
PENUTUP.
........................................................................ 136
5.1 Kesimpulan
........................................................................ 136
5.2 Saran ..................................................................................... 137
DAFTAR PUSTAKA .................................................................................. 138
xi
DAFTAR GAMBAR
Halaman Gambar 2.2 : Model Sistem Kriptografi Simetris ........................................ 27 Gambar 2.3 : Model Sistem Kriptografi Asimetris...................................... 28 Gambar 2.3 : Karakter ASCII. .................................................................... 32 Gambar 2.4 : Arsitektur J2ME ................................................................... 39 Gambar 2.5 : Ruang Lingkup CLDC dan CDC........................................... 40 Gambar 2.6 : Hubungan J2ME dan J2SE.................................................... 40 Gambar 2.7 : CLDC ................................................................................... 41 Gambar 2.8 : Alur Hidup MIDLET ........................................................... 43 Gambar 2.9 : Arsitektur GSM..................................................................... 53 Gambar 2.10: Diagram Alir SMS Mobile Terminating ................................ 55 Gambar 2.11: Diagram Alir SMS NO.......................................................... 57 Gambar 2.12: Arsitektur Rational Unified Process ...................................... 60 Gambar 3.1 : Tahapan RUP........................................................................ 67 Gambar 3.2 : Kerangka Berfikir ................................................................. 71 Gambar 4.1 : Alir Kerja Sistem Yang Diusulkan ........................................ 84 Gambar 4.2 : Use Case Diagram................................................................. 87 Gambar 4.3 : Activity Diagram Dari Use Case Kirim SMS ........................ 94 Gambar 4.4 : Activity Diagram Dari Use Case Inbox ............................... 34 Gambar 4.5 : Activity Diagram Dari Use Case Outbox............................... 96 Gambar 4.6 : Activity Diagram Dari Use Case Terima SMS....................... 97 Gambar 4.7 : Activity Diagram Dari Use Case Bantuan ............................. 98 Gambar 4.8:
Sequence Diagram Dari Use Case Kirim SMS ...................... 99
Gambar 4.9 : Sequence Diagram Dari Use Case Inbox ............................... 100 Gambar 4.10: Sequence Diagram Dari Use Case Outbox............................. 101 Gambar 4.11: Sequence Diagram Dari Use Case Terima SMS .................... 102 Gambar 4.12: Sequence Diagram Dari Use Case Bantuan ........................... 103 Gambar 4.13: Class Diagram ...................................................................... 104
xii
Gambar 4.14: Tahapan Algoritma RSA ....................................................... 109 Gambar 4.15: Flowchart Algoritma Pembangunan Kunci ........................... 111 Gambar 4.16: Flowchart Proses Enkripsi Algoritma RSA ........................... 113 Gambar 4.17: Flowchart Proses Dekripsi Algoritma RSA .......................... 115 Gambar 4.18: Rancangan Tampilan Awal Aplikasi ..................................... 123 Gambar 4.19: Rancangan Menu Utama ....................................................... 123 Gambar 4.20: Perancangan Tampilan Kirim SMS ....................................... 124 Gambar 4.21: Perancangan Tampilan Terima SMS. ................................... 124 Gambar 4.22: Perancangan Tampilan Inbox ................................................. 125 Gambar 4.23: Perancangan Tampilan Outbox.............................................. 126 Gambar 4.24: Perancangan Bantuan ............................................................ 126 Gambar 4.26: Proses Pengiriman SMS di Pengujian 1 ................................. 131 Gambar 4.27: Proses Penerimaan SMS di Pengujian 1 ................................ 132 Gambar 4.28: Proses Pengiriman SMS di Pengujian 2 ................................. 133 Gambar 4.29: Proses Penerimaan SMS di Pengujian 2 ................................ 133 Gambar 4.30: Proses Pengiriman SMS di Pengujian 3 ................................. 134 Gambar 4.31: Proses Penerimaan SMS di Pengujian 3 ................................ 135
xiii
DAFTAR TABEL Halaman Tabel 2.1 :
Perbandingan CLDC dan CDC.............................................. 42
Tabel 2.2 :
Penyimpanan Record Dalam RecordStore ............................. 44
Tabel 2.3 :
Notasi UML .......................................................................... 50
Tabel 4.1 :
Cause and Effect Objectives.................................................. 78
Tabel 4.2 :
System Improvement Objectives ........................................... 79
Tabel 4.3 :
Nonfunctional Requirement .................................................. 81
Tabel 4.4 :
Perbedaan Objek-objek dalam Model Bisnis dan Model Sistem85
Tabel 4.5 :
Requiremeny Actor dan Use Case ........................................ 86
Tabel 4.6 :
Use Case Scenario Kirim SMS ............................................. 88
Tabel 4.7 :
Use Case Scenario Inbox....................................................... 89
Tabel 4.8 :
Use Case Scenario Outbox .................................................... 91
Tabel 4.9 :
Use Case Terima SMS .......................................................... 92
Tabel 4.10 :
Use Case Bantuan ................................................................. 93
Tabel 4.11 :
Daftar Operasi Dari Kelas Kirim SMS ................................. 105
Tabel 4.12 :
Daftar Atribut Dari Kelas Kirim SMS ................................... 105
Tabel 4.13 :
Daftar Operasi Dari Kelas Ekripsi SMS ................................ 106
Tabel 4.14 :
Daftar Operasi Dari Kelas Receive SMS ............................... 106
Tabel 4.15 :
Daftar Atribut Dari Kelas Receive SMS ................................ 107
Tabel 4.16 :
Daftar Atribut Dari Kelas Outbox ......................................... 108
Tabel 4.17 :
Daftar Atribut Dari Kelas Inbox ............................................ 108
Tabel 4.18 :
Hasil Pengujian Program....................................................... 129
Tabel 4.19 :
Kesimpulan Hasil Pengujian 1............................................... 130
Tabel 4.20 :
Kesimpulan Hasil Pengujian 2............................................... 132
Tabel 4.21 :
Kesimpulan Hasil Pengujian 3............................................... 134
xiv
DAFTAR LAMPIRAN
LAMPIRAN A (User Manual) LAMPIRAN B (Souce Code Program)
xv
1
BAB I PENDAHULUAN 1.1.
Latar Belakang Masalah Dengan perkembangan teknologi yang sangat pesat dapat membantu hidup manusia lebih mudah dan lebih efisien terutama dalam bidang komunikasi. Komunikasi jarak jauh dapat kita lakukan dengan bantuan teknologi nirkabel (tanpa kabel), dengan tekonologi nirkabel ini kita dapat berkomunikasi kapan saja dan dimana saja tanpa dibatasi kabel yang berada di area cakupan infrastruktur nirkabel tersebut. Contoh produk dari perkembangan teknologi nirkabel ini adalah SMS (Short Message Service). Penggunaan SMS telah mengalami pengembangan saat ini di berbagai lapisan masyarakat. Namun seiring dengan berkembangnya teknologi membuat SMS yang kita gunakan bisa saja diketahui orang lain dengan cara menyadapnya. Berikut aadalah contoh kasus penyadapan yang ditulis di blog Attayaya. KPK (Komisi Pemberantasan Korupsi) menyadap telepon. Itulah yang saya baca pada tanggal 6 April 2009 diinternet yang dipost oleh attayaya. Atta mejelaskan bahwa bisa saja komunikasi kita disadap oleh pihak yang tidak diduga, seperti KPK, orang iseng, teman atau kelurga/ kerabat lainnya. Dalam postnya Atta menjelaskan bahwa ia telah
2
menyadap sms pasangan suami istri yang sedang ber-SMSan. Pembicaraan melalui sms antara Ayu seorang istri dan ibu rumah tangga yg baik dengan suaminya
Hary
seorang
PNS
di
salah
satu
departemen
yang
kerja/jabatannya sangat menentukan dalam mengesahkan suatu proyek. Dalam artikel tersebut ditemukan, bahwa Atta memiliki alat yang bisa menyadap komunikasi berbentuk SMS. Tidak menutup kemungkinan juga bahwa komunikasi verbal juga bisa disadap oleh Atta . Begitulah realita bahwa teknologi yang semakin canggih saat ini memungkinkan orang lain dengan
mudah
masuk
ke
dalam
kehidupan
pribadi
kita
(http://www.attayaya.net/2009/04/kpk-menyadap-telepon.html) Untuk mencegah terjadinya penyelusupan terhadap informasiinformas kita yang kmgkinan disadap orang lain, maka dalam berkomunikasi menggunakan SMS harus menggunakan enkripsi SMS agar tdak menjadi korban penyadapan maka perlu ditambahkan aplikasi untuk mengamankan SMS. Metode yang digunakan untuk meningkatkan keamanan dalam aplikasi enkripsi dan dekripsi pesan SMS ini adalah metode RSA. Dengan metode RSA ini diharapkan dapat meningkatkan keamanan pada layanan SMS. Dalam pelaksanaannya telepon selluler memliki kecepatan yang kurang baik dari processor dikomputer. Oleh karena itu diharapkan algoritma kriptografi yang dapat diimplementasikan secara lebih kompleks.
3
Berdasarkan atas informasi diatas, penulis membuat sebuah implementasi dengan menerapkan metode Algoritma Kriptografi RSA dengan J2ME yang diimplementasikan kedalam software di HP. Didalam pengimplementasian aplikasi ini komunitas penggunanya diberi tambahan password yang telah mereka sepakati dan hanya diketahui oleh komunitas tersebut. Dalam skripsi ini penulis membuat pengimplementasian kriptografi
RSA
“IMPLEMENTASI
untuk
mengamankan
KRIPTOGRAFI
SMS
dengan
judul
MENGGUNAKAN
ALGORTIMA RSA UNTUK MENGAMANKAN SMS BERBASIS J2ME ”. 1.2.
Perumusan Masalah Berdasarkan latar belakang diatas, yang menjadi rumusan masalah dalam skripsi ini adalah sebagai berikut: 1. Bagaimana mengimplementasikan algoritma RSA ke dalam Aplikasi Pengamanan Pada SMS di telepon seluler?? 2.Bagaimana performansi aplikasi enkripsi-dekripsi dengan menggunakan algoritma RSA yang diimplementasikan untuk mengamankan sms SMS?
4
1. 3. Batasan Masalah Adapun batasan masalah dalam penulisan tugas akhir ini: 1. Perancangan program enkripsi-dekripsi SMS ini menggunakan bahasa Java diimplementasikan melalui J2ME pada tpn slluler yang digunkn. 2. Analisis Keamanan tidak akan dibahas 3. Dalam melakukan perancangan aplikasi, penulis menggunakan Unified Modelling Language (UML) sebagai tools-nya. 4. Aplikasi yang dibangun akan terpisah dari aplikasi SMS standart pada telepon selluler. 5. Telepon seluler yang digunakan adalah Samsung 6270 dengan spesifikasi CLDC 2.0 dan WMA 1.1 1.4 Tujuan dan Manfaat Penelitian 1.4.1 Tujuan Penelitian Tujuan penyusunan tugas akhir (skripsi) ini secara umum adalah untuk mengimplementasikan suatu algoritma kriptografi yang dapat diterapkan untuk mengamankan SMS. 1.4.2 Manfaat Penelitian Adapun Manfaat Penelitian dari penelitian ini adalah: 1. Bagi Penulis
5
a. Mengetahui lebih mendalam tentang kriptografi (tentang pembuatan, fungsi dan kegunaannya). b. Menerapkan kriptografi dalam suatu aplikasi SMS. c. Untuk memenuhi salah satu syarat kelulusan strata satu (S1), Teknik Informatika, Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta. 2. Bagi Pengguna a. Dapat mengamankan data-data SMS. 3. Bagi Universitas a. Mengetahui kemampuan mahasiswa dalam menguasai materi pelajaran yang diperoleh dibangku kuliah. b. Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan sebagai bahan evaluasi. c. Memberikan
gambaran
tentang
kesiapan
mahasiswa
menghadapi dunia kerja yang sebenarnya. 1.5 Metode Penelitian 1.5.1 Metode Pengumpulan Data Metode yang digunakan dalam pengumpulan data adalah:
dalam
6
a. Studi Pustaka 1) Mempelajari buku-buku atau dokumen-dokumen dan artikel-artikel yang berhubungan dengan teknologi SMS, teknik mengamankan pesan dengan kriptografi. 2) Menganalisa bahasa pemrograman yang sesuai untuk perangkat bergerak seperti telepon seluler. Pustaka-pustaka yang dijadikan acuan dapat dilihat di Daftar Pustaka. 3) mempelajari penelitian sebelumnya yaitu enkripsi SMS dibangun untuk telepon sellular yang memanfaatkan bidang kriptografi seperti metode RC4, vigener chipper, dan metode RSA yang akan diimplementasikan penulis. 1.5.2 Metode Pengembangan Sistem Metode perancangan
dan
yang
penulis
pengembangan
gunakan sistem
dalam yaitu
melakukan
menggunakan
metodologi Rational Unified Process (RUP) tahapannya adalah: 1. Inception Pada tahap ini penulis menentukan ruang lingkup proyek dengan cara mengadakan observasi langsung mengenai system penggunaaan teknologi SMS ini di masyarakat.
7
2. Elaboration Pada tahap ini setelah penulis mengadakan observasi, hasil dari observasi tersebut kemudian penulis melakukan identifikasi masalah yang terjadi pada sistem yang sedang berjalan, dan menentukan alur bisnis dan aplikasi serta wilayah persoalan data yang akan didukung oleh sistem yang akan dikembangkan serta ditentukan pula jangkauan atau batasan sistem. 3. Construction Setelah mengetahui definisi aplikasi yang akan dibuat, yang meliputi analisis terhadap sistem, maka tahapan berikutnya adalah melakukan perancangan (design). Perancangan yang dimaksud meliputi perancangan aplikasi dan perancangan antarmuka (interface) aplikasi sendiri, penulis melakukan perancangan Graphical User Interface (GUI) dari aplikasi ini. Pada tahap ini penulis melakukan developing aplikasi berdasarkan tahapan-tahapan sebelumnya. dalam hal ini penulis menggunakan bahasa pemrograman JAVA, khususnya J2ME. Pada tahap ini penulis juga mengimplementasi dan melakukan pengujian terhadap aplikasi sistem yang telah dibuat. Untuk pengujian ini, penulis menerapkan 2 (dua) macam pengujian yaitu secara mandiri dan pengujian oleh user dengan metode blackbox.
8
4. Transition Pada tahap ini penulis membuat apa yang sudah dimodelkan ditahapan-tahapan sebelumnya menjadi suatu barang yang layak jadi. 1.6 Sistematika Penulisan Adapun untuk sistematika penulisan skripsi ini terdiri dari 5 bab, yaitu : BAB I : PENDAHULUAN Bab ini berisikan Latar Belakang Masalah, Perumusan Masalah, Batasan Masalah, Tujuan dan Manfaat Penelitian, Metodologi Penelitian dan Sistematika Penelitian. BAB II : LANDASAN TEORI Bab ini berisi tentang segala macam teori serta konsep yang berkaitan dengan penelitian, seperti java, J2ME. BAB III : METODOLOGI PENELITIAN Bab ini membahas tentang bagaimana dan seperti apa metodologi yang digunakan dalam melakukan penelitian, mulai dari tahap pengumpulan data sampai pada tahap pengembangan aplikasi. BAB IV : ANALISA DAN PERANCANGAN SISTEM Bab ini berisi analisis terhadap kebutuhan sistem, rancangan antarmuka pengguna serta implementasi pengembangannya secara konkrit.
9
BAB V : KESIMPULAN DAN SARAN Pada bab ini penulis menyampaikan kesimpulan dan saran dari hasil penelitian yang telah dilaksanakan dan di susun pada bab sebelumnya.
BAB II LANDASAN TEORI
2.1 Keamanan Sistem Komputer Sistem keamanan komputer (Janner Simarmata, 2006) digunakan untuk menjamin agar sumber daya/informasi tidak digunakan atau dimodifikasi orang yang tidak diotorisasi. Pengamanan termasuk masalah teknis, manajerial, dan legalitas. 2.1.1 Ancaman Keamanan Masalah keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi. Masalah keamanan seringkali kurang mendapat perhatian dari para perancang atau pengelola sistem informasi. Setingkali masalah keamanan berada diurutan setelah tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting. Semakin majunya bidang teknologi informasi membuat banyaknya pertukaran informasi setiap detik melalui jaringan Internet. Ancaman keamanan yang terjadi terhadap informasi adalah (Dony Ariyus, 2008) :
Interruption
: merupakan suatu ancaman yang ada dalam sistem
komputer dengan dirusak, dihapus sehingga jika data dibutuhkan tidak ada lagi.
Interception
: Ancaman terhadap kerahasiaan ( secrecy ).
Informasi yang ada disadap atau orang yang tidak berhak mendapat akses ke komputer dimana informasi tersebut disimpan.
10
11
Modifikasi : Ancaman terhadap Integritas. Orang yang tidak berhak berhasi menyadap lalu lintas informasi yang sedang dikirim dan dirubah dengan keinginan orang tersebut.
Fabrication
: Ancaman terhadap Integritas. Orang yang tidak
berhak berhasil meniru/ memalsukan suatu informasi. 2.1.2 Aspek – aspek keamanan komputer Aspek keamanan komputer meliputi delapan aspek, diantaranya (Dony Ariyus, 2008) :
Authentication
: Penerima informasi dapat memastikan keaslian
pesan tersebut datang dari orang yang benar dikehendaki.
Integrity: Keaslian pesan yang dikirim memalui sebuah jaringan dapat
dipastikan bahwa informasi tersebut tidak dimodifikasi oleh orang yang tidak berhak.
Nonrepudiation: si pengirim tidak dapat mengelak bahwa dialah yang
mengirim informasi tersebut.
Authority: Informasi yang berada pada sistem jaringan tidak dapat
dimodifikasi oleh orang yang tidak berhak.
Confidentiality: Usaha untuk menjaga informasi dari orang yang tidak
berhak.
Privacy: Lebih kearah data-data yang bersifat pribadi.
Availibility : Ketersediaan informasi ketika dibutuhkan. Sistem
Informasi yang diserang atau di jebol dapat menghambat atau meniadakan akses ke informasi.
12
Access Control
: Aspek ini berhubungan dengan cara pengaturan
akses kepada informasi. Akses kontrol seringkali dilakukan dengan menggunakan kombinasi user id dan password atau mekanisme lainnya. 2.2 Teknik-Teknik Kriptografi 1.Teknik Substitusi Substitusi merupakan penggantian setiap karakter teks-asli dengan karakter lain. A
B
C
D
E
N
F
L
T
P
F
G
H
I
J
B
D
K
R
O
K
L
M
N
O
V
S
J
E
I
P
Q
R
S
T
C
A
H
W
U
U
V
W
X
Y
X
M
G
Q
Y
Terdapat empat istilah substitusi kode, antara lain: 1. Monoalphabet: setiap karakter teks-kode menggantikan slah satu karakter teksasli. 2. Polyalphaber: setiap karakter teks-kode dapat menggantikan lebih dari satu macam karakter teks-asli. 3. Monograf: satu enkripsi dilakukan terhadap satu karakter teks-asli. 4. Polygraph: satu enkripsi dilakukan terhadap lebih dari satu karakter teks-asli.
A. Kode Kaisar Substitusi kode ysng pertama dalm dunia penyandian terjadi pada pemerintahan Yulius Caesar yang dikenal dengan kode Kaisar, dengan mengganti posisi huruf awal dari alphabet atau disebut juga dengan algoritma ROT3.
Caesar Chiper (ROT3)
Plain Text
Encoded Text
ABC
DEF
Hello
Khoor
Attack
Dwwdfn
13
Secara lebih detail, coba perhatikan contoh berikut: A B C D E F G H I 0
1
2
3
4
5 6
7
J K
L
M N
O
P
Q
R
S
T
U
V
W X
Y
Z
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Menjadi: D E F G H I J K 3
4
5
6
7
L
M N
O
P
Q
R
S
T
U
V
W X
Y
Z
A B C
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunci untuk dekripsinya adalah 3. Penggeseran kunci yang dilakukan tergantung keingina pengirim pesan. Bila saja kunci yang dipakai a = 7, b = 9, dan seterusnya. Contoh algoritma kode Kaisar: Untuk teks-asli diberikan symbol “P” dan tekskodenya “C” dan kunci “K”. Jadi rumusnya dapat dibuat sebagai berikut: C=E(P) = (P+K) mod (26) Pada contoh diatas kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi: C=E(P) = (P+3) mod (26) Rumus dekripsinya menjadi seperti berikut: P = D(C) = (C-K) mod (26) Dari contoh diatas, dengan memasukkan kunci tiga, maka: P = D(C) = (C-3) mod (26) Jika diberikan teks-asli sebagai berikut: GEMPA DI YOGYA MENELAN KORBAN TIDAK SEDIKIT DAN SAMPAI SEKARANG MASIH MENYISAKAN TRAUMA BAGI ORANGORANG KOTA GUDEG. Dengan menggunakan kunci tiga maka akan didapat teks-kode berikut: JHPDBRJBDPHQHODQNRUEDQWLGDNVHGLNLWGDQVDPSDLVHNDU DQJPHNDUDQJPHQBLVDNDQWUDPDEDJLRUDQJNRWDJXGHJ
1
2
14
B. Kode Geser Teknik Substitusi kode geser (shift) dengan modulus 26 memberikan angka ke setiap alphabet seperti a ←→ 0, B ←→ 1 ……….. Z ←→ 25. Agar lebih jelas, perhatikan contoh dibawah ini: A
B
C
D
E
F
G
H
I
J
K
L
M
0
1
2
3
4
5
6
7
8
9
10
11
12
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
14
15
16
17
18
19
20
21
22
23
24
25
Teks-asli: “We Will Meet a Mid Night” Kalimat di atas mendapat angka dari setiap huruf sebagai berikut: 22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19 Untuk mendapatkan teks-kode, kita mempunyai kunci 11. Dengan menambahkan setiap nilai dari teks-asli dengan kunci 11 maka didapat: 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 Jika lebih dari 20, setelah ditambah dengan kunci mka akan dikurangi dengan 26. Misalnya, 22+11= 33-26=7. Setelah dikonversi menjadi huruf maka akan didapatkan teks-kode: “HPHTWWXPPELEXTOYTRSE” Teks- asli
: We will meet a mid night”
Teks-kode
: HPHTWWXPPELEXTOYTRSE”
Kunci
: 11
C. Kode Hill Kode Hill termasuk salah satu system kripto polialfabetik, yang berarti setiap karakter alphabet bisa dipetakan ke lebih dari satu macam karakter. Kode ini ditemukan pada tahun 1929 oleh Lester S. Hill. Misalkan m adalah bilangan bulat positif, dan P = C = (Z ) . Ide dari kode Hilladalah dengan mengambil m kombinasi linear dari m karakter dalam satu elemen teks-asli sehingga dihasilkan
15
m alphabet karakter dalam satu elemen teks-asli. Misalkan m = 2 maka dapat ditulis suatu elemen teks-asli sebagai x = (x1 , x2) dan suatu elemen teks-kode sebagai y = (y1, y2). Di sini y1, y2 adalah kombinasi linear dari x1 dan x2. Misalkan: Y1 = 11x1+ 3x2 Y2 = 8x1 + 7x2 Dapat ditulis dalam notasi matriks sebagai berikut:
Secara umum dengan menggunakan matriks K m x m sebagai kunci. Jika elemen pada baris I dan kolom j dari matriks K adalah kI,j, maka dapat ditulis K = ( kI,j). Untuk x = (x1, …. , xm) € P dan K € K, dihitung y = ek (x) = (y1, …, ym) Sebagai berikut:
dengan kata lain, y = xK Dikatakan bahwa teks-kode diperoleh dari teks-asli dengan cara transformasi linear. Untuk melakukan dekripsi menggunakan matriks inverse K-1, dekripsi dilakukan dengan rumus y = xK-1. 1. Perkalian matriks memiliki sifat asosiatif, yaitu (AB)C = A(BC). 2. Matriks identitas m x m, yang ditulis dengan Im, adalah matriks yang berisi 1 pada diagonal pertama dan berisi 0 pada elemen lainnya. Contoh matriks identitas 2 x 2: I2 =
1
0
0 1
16
Im disebut disebut dengan matriks identitas karena AIm = A untuk sembarang matriks 1 x m dan ImB = B untuk sembarang matriks m x n. 3. Matriks inverse dari A (jika ada) adalah A-1 dimana AA-1 = A-1 A = Im. Dengan menggunakan sifat-sifat matriks diatas, maka: Y= Xk -1
Yk = (Xk)K-1= x(KK-1)= x Im=x Contoh: Dapat dilihat bahwa matriks enkripsi pada contoh sebelumnya memiliki invers pada Z26: 11 3 Karena 11 3
8 7
7 23
18 11
8
7
18
11*7+8*23
11*18+8*11
7
23
11
3*7+7*23
3*18+7*11
=
261 182
=
1 0
286 131 0 1
Sebuah contoh untuk memberikan gambaran tentang enkripsi dan dekripsi dalam kode Hill. Misalkan kunci yang diapakai adalah: 11 8 K= 3 7 Dari perhitungan diatas diperoleh bahwa: 7 18 -1 K = 23 11
untuk mengenkripsi teks-asli JULY, ada 2 elemen teks-asli untuk dienkripsi: 1. (9,20) → JU 2. (11,24) → LY Kemudian lakukan perhitungan berikut: (9 , 20)
= (99+60 , 72+140) = (3 , 4) → DE
17
dan = (121+72 , 88+168) = (11 , 22) → LW
(11 , 24)
sehingga enkripsi untuk JULY adalah DELW. Untuk mendekripsi dilakukan dengan cara: (3 , 4) =
(9 , 20)
Dan (11 , 22)
= (11 , 24)
sehingga teks-asli diperoeh kembali. Dekripsi hanya mungkin dilakukan jika matriks K memiliki inverse. Suatu matriks K memiliki inverse jika dan hanya jika determinannya tidak nol. Namun karena Z26 maka matriks K memiliki inverse modulo 26 jika dan hanya jika gcd (det K, 26)=1. Untuk matriks A = (ai,j) berukuran 2 x 2, nilai determinannya adalah: det A = a1,1a2,2 – a1,2a2,1) dan matriks inverse dari A adalah: a2,2
-a1,2
-a2,1
a1,1
A-1 = (det A)-1
Contoh: 11
8
3
7
K= maka 11 det K = det 3 7
8 = 11*7-8*3 mod 26 = 77-24 mod 26 = 53 mod 26 = 1
18
Kemudian 1-1 mod 26 = 1, sehingga matriks inversenya adalah: 11
8
3
7
-1
K-1 =
7
18
= 23
11
Contoh: Kode Hill dengan menggunakan matriks 3 x 3 dengan kunci matriks (4 2 3; 6 3 3; 3 1 2). Diketahui teks-asli berikut:
“KENAIKAN HARGA BBM MEMBUAT
RAKYAT KECIL MENDERITA”.
D. Kode Vigenere 1. Angka Teknik substitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan huruf dengan angka, hampir sama dengan kode geser. A
B
C
D
E
F
G
H
I
J
K
L
M
0
1
2
3
4
5
6
7
8
9
10
11 12
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13 14 15 16
17
18
19
20
21 22
23
24
25
Kunci dengan 6 huruf kode jika ditukar dengan angka akan menjadi K = (2, 8, 15, 7, 4, 17), dan teks-aslinya “This Cryptosystem is Not Secure”. T
H
I
S
C
R
Y
P
T
O
S
Y
S
T
19
7
8
18
2
17
24
15
19
14
18
24
18
19
2
8
15
7
4
17
2
8
15
7
4
17
2
8
25 6
8
0
23
15
20
1
21
15 23
E
M
4
12 18
I
8
21 22
S
N
O
T
S
E
C
U
R
E
8
18
13
14
19
18
4
20
17
4
19
15
7
4
19
19 12
17
2
8
15
9 15
22
8
7
4
17
2
25
8
19
22
Teks-asli
: This cryptosystem is not secure
Kunci
: (2, 8, 15, 7, 4, 17)
Teks-kode
: VPXZGIAXIVWPUBTTMIJPWIZITWZT)
8 25
15 19
2. Teknik Transposisi Di atas kita sudah mengenal teknik substitusi kode. Pada bagian ini akan dinahas teknik permutasi (transposisi kode). Teknik ini menggunakan permutasi karakter, yang mana dengan menggunakan teknik ini pesan yang asli tidak dapat dibaca kecuali oleh orang yang memiliki kunci untuk mengembalikan pesan tersebut ke bentuk semula. Sebagai contoh: Ada 6 kunci untuk melakukan permutasi kode:
Dan 6 kunci untuk inverse darinpermutasi tersebut:
Seandainya melakukan permutasi terhadap kalimat di bawah ini: “SAYA SEDANG BELAJAR KEAMANAN KOMPUTER” Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabila terjadi kekurangan dari blok bisa ditambah dengna huruf yang disukai. Dalam contoh ini ditambah dengan huruf X. Hal ini berguna untuk mempersulit analisis dari kode tersebut. SAYA SEDANG BE LAJAR KEAMANAN KOMPUTER Setelah dibagi menjadi 6 blok maka dengan menggunakan kunci di atas setiap blok akan berubah menjadi seperti dibawah ini: YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE
20
Jadi teks-kode t yang dihasilkan: “YSSEAANBDEGAJRLKAAMNEAAAOPNUMKRXTXXE”
Untuk mengembalikan ke bentuk teks-asli maka dilakukan inverse terhadap chipertext dengan mengikuti kunci nomor dua di atas. Ada banyak teknik untuk permutasi ini, seperti zig-zag, segitiga, spiral dan diagonal. 1. Zig-zag: memasukkan teks-asli dengan pola zig-zag seperti contoh di bawah ini: A Y A S
G S
N E
A B
A
J E
D
A R
A
M K
L
M N
A
O A
E
X P
K
R U
N
E T
2. Segitiga: masukkan teks-asli dengan pola segitiga dan dibacadari atas ke bawah. S
R
A
Y
A
B
E
L
A
J
R
K
E
A
M
A
N
A
N
K
O
M
P
U
T
E
X
X
X
X
X
X
X
X
X
X
Teks-kodenyaadalah: “RAXRNXBKKXAEEOXSYLAMXAAMPXJAUXNTXEXX” 3. Spiral: teks-asli dimasukkan secara spiral dan dapat dibaca dari atas ke bawah. Lihat contoh di bawah
ini:
S
A
Y
A
S
E
A
M
A
N
A
D
E
E
R
X
N
A
K
T
X
X
K
N
21
R
U
P
M
O
G
A
J
A
L
E
B
Teks-kodenya adalah: “SAEKRAAMETUJYARXPAANXXMLSANKOEEDANGB” 4. Diagonal: Dengan menggunakan pola ini teks-asli dimasukkan dengan cara diagonal. Coba perhatikan contoh dibawah ini: S
D
L
E
N
E
A
A
A
A
K
R
Y
N
J
M
O
X
A
G
A
A
M
X
E
E
K
A
U
X
Teks-kodenya adalah:
“SDLENEAAAAJRYNHMOXAGAAMXSBRNPXEEKAUX” Teknik transposisi (permutasi) memiliki bermacam-macam pola yang bisa digunakan untulk menyembunyikan pesan dari tangan orang-orang yang tidak berhak. Kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi yang kita kenal sekarang ini (modern).
3. Enkripsi Super Pada pembahasan di atas, semua tergolong kode yang sederhana dan mudah dipecahkan. Enkripsi super merupakan suatu konsep yang menggunakan kombinasi dari dua atau lebih teknik substitusi dan permutasi kode untuk mendapatkan suatu algoritma yang lebih andal (sulit dipecahkan). Teknik dari enkripsi super ini mudah dialkukan asal sudah memahami teknik substitusi dan permutasi di atas. Pertama yang dilakukan adalah melakukan enkripsi pesan dengan menggunakan teknik substitusi dan teks-kode yang dapat dienkripsi lagi menggunakan teknik transposisi (permutasi). Contoh dari superkripsi adalah seperti di bawah ini:
22
Diketahui teks-asli: “KENAIKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA” 1. Menggunakan teknik substitusi kode dengan memakai algoritma kode kaisar dengan kunci 6. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G H I J K L M N O P Q R S T U V W X Y Z A B C D E F Teks-kode yang didapat: “QKTGOQGTN GXMGHHSSKSHAGZQKIORSKTJKXOZG” 2. Menggunakan teknik transposisi kode (permutasi kode) dengan menggunakan teknik diagonal permutasi dengan kunci 4. Q
K
T
G
O
Q
G
T
N
G
X
M
G
H
H
S
S
K
S
H
A
G
Z
Q
K
I
O
R
S
K
T
J
K
X
O
Z
G
X
X
X
Maka didapat hasil akhir sebagai berikut: “QONGSAKSKGKQGHKGIKXXTGXHSZOTOXGTMSHQRJZX” Teknik dari enkripsi super sangat penting dan banyak dari algoritma enkripsi modern menggunakan teknik ini sebagai dasar pembuatan suatu algoritma.
23
2.3 Pengenalan Sistem Kriptografi 2.3.1 Prinsip Dasar Kriptografi Kriptografi sudah dipergunakan sejak zaman Julius Caesar. Beliau pada saat itu akan mengirimkan pesan kepada panglimanya tetapi tidak mempercayai kurir sebagai pembawa pesan tersebut sehingga Julius Caesar mempunyai ide untuk menyandikan pesan tersebut dengan tujuan agar pesan tidak dapat dimengerti oleh orang yang tidak berhak. Sehingga munculah isilah kriptografi (cryptography) yang berasal dari bahasa Yunani yaitu “Crypto” yang berarti “secret” (rahasia) dan “graphy” yang berarti “writing” (tulisan) (Flourensia Sapti Rahayu, 2005). Secara umum, kriptografi (Rinaldi Munir, 2004) adalah ilmu dan seni untuk menjaga kerahasiaan berita. Kriptografi (cryptography) dilakukan oleh seorang kriptografer. Di zaman modern, pada mulanya kriptografi tidak cukup dikenali di masyarakat luas. Hanya di kalangan pemerintahan dan instansi-instansi tertentu, seperti militer saja kriptografi sering dipakai untuk mengamankan informasi yang bersifat rahasia. Namun terutama setelah diperkenalkannya Dat Encryption Standard (DES) pada tahun 1976 oleh National Buraeu of Standard (NBS), maka kriptografi pun mulai dikenal secara luas untuk keperluan pengamanan informasi terutama yang berbentuk digital. Di era informasi, kebutuhan akan sistem kriptografi untuk mengamankan informasi telah dirasa semakin mendesak. Pertumbuhan
24
jaringan komputer berskala luas yang dipakai untuk berbagai keperluan telah pula mendorong berkembangnya kajian tentang sistem kriptografi Masyarakat semakin didasarkan akan perlunya melindungi privacy dan secrecy informasi yang bersifat individu, karena ancaman penyadapan maupun penyerangan pun kian tinggi dengan teknik-teknik yang semakin canggih.
2.3.2 Terminologi dalam Kriptografi Istilah-istilah kriptografi yang digunakan dalam pembahasan ini selanjutnya akan selalu menunjukkan sistem enkripsi digital, yaitu sederetan bit ditransformasikan secara matematik atau fungsi logic menurut algortima tertentu menjadi deretan bit baru. Proses transformasi dari deretan bit yang lama menjadi deretan bit yang baru ini memerlukan elemen-elemen yang berupa (Erwan Susanto, 2005) : 1) Algoritma Kriptografi Merupakan fungsi matematis yang digunakan untuk enkripsi dan dekripsi data. 2) Kunci Kriptografi Satu set variabel yang terdiri dari urutan bit untuk mentransformasikan data. Algoritma berfungsi melakukan transformasi terhadap data. Istilah Cipher dipakai untuk menyatakan transformasi bersifat algoritmik yang dilakukan atas dasar simbol per simbol atau bit per bit terhadap data.
25
Disini terkenal istilah encipher atau encrypt (enkripsi), yang menunjukkan pada transformasi yang dilakukan disisi pengirim. Adapun decipher atau decrypt adalah transformasi invers yang dilakukan pada sisi penerima. Masukkan algoritma pada proses enkripsi adalah data asli yang disebut plaintext atau cleartext (teks asal), sedangkan keluarannya adalah data yang telah tertransformasi yang disebut ciphertext (teks tersandi). Proses dekripsi yang dilakukan disisi penerima bertujuan untuk memperoleh kembali plaintext dari ciphertext. Adapun pesan yang ditransmisikan adalah dalam bentuk ciphertext sehingga orang yang menyadap media transmisi tidak akan memahami arti pesan yang diperolehnya. Kunci berfungsi sebagai pengontrol transformasi yang dilakukan algoritma terhadap plaintext maupun ciphertext. Usaha untuk memecahkan sistem kriptografi disebut dengan kriptanalisis sedangkan orang yang melakukannya disebut kriptanalis. 2.4 Algoritma Kriptografi Algoritma kriptografi merupakan fungsi matematis yang digunakan untuk proses dekripsi dan enkripsi. Algoritma kriptografi ini bekerja dalam kombinasi dengan menggunakan kunci (key) seperti kata, nomer atau frase tertentu. Algoritma kriptografi harus memiliki kekuatan untuk melakukan (Janner Simarmata, 2006) :
26
• Konfusi / pembingungan (confusion), dari plaintext sehingga sulit untuk direkonstruksikan
secara
langsung
tanpa
menggunakan
algoritma
dekripsinya • Difusi / peleburan (difusion), dari plaintext sehingga karakteristik dari plaintext tersebut hilang. sehingga dapat digunakan untuk mengamankan informasi. Algoritma kriptografi yang handal adalah algoritma kriptografi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri. Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokkan menjadi dua bagian, yaitu Algoritma Simetris (Algoritma konvensional) dan Algoritma Asimetris (Algoritma Kunci Publik).
2.4.1 Algoritma kriptografi simetris / private key algorithm. Enkripsi kunci simetrik disebut juga enkripsi konvensional karena enkripsi ini meggunakan kunci yang sama untuk proses enkripsi maupun dekripsi ( Agus, Sofwan, dkk, 2006 ). Dari gambar 2.1 dapat terlihat bahwa untuk mengenkripsi maupun untuk mendekripsi pesan, pengirim dan penerima hanya menggunakan satu buah kunci (K) yang sama. Sehingga pada penggunaan metode ini pengirim dan penerima membutuhkan persetujuan tentang kunci yang akan digunakan sebelum mereka saling mengirim pesan.
27
Keamanan dari kunci simetrik ini tergantung dari kerahasiaan kunci. Apabila seorang penyusup dapat menemukan kunci (K) maka dengan mudahnya penyusup tersebut dapat membaca pesan yang sudah dienkripsi. Oleh karena itu, kunci simetris ini lebih dikenal dengan privat key. Contoh algoritma kriptografi kunci simetris adalah DES, 3DES, AES, IDEA dan lain-lain.
Gambar 2.1 model sistem kriptografi simetris 2.4.2 Algoritma kriptografi asimetris/ public key algorithm. Konsep kriptografi kunci umum pertama kali dikemukakan oleh Whitfield Diffie dan Martin Hellman sebagai suatu terobosan di bidang kriptografi. Sistem ini muncul sebagai jawaban atas permasalahan bagaimana meminimasi pengguna kanal rahasia untuk keperluan pendistribusian kunci pada sistem kriptografi konvensional. Karena menggunakan kanal rahasia untuk pendistribusian kuncinya maka pada sistem ini membutuhkan lebih banyak memori dan waktu proses yang dibutuhkan untuk melakukan proses enkripsi juga lebih lama apabila dibandingkan dengan sistem kriptografi simetris. Dalam sistem kriptografi kunci publik ini, proses enkripsi dan dekripsi menggunakan kunci yang berbeda, namun kedua kunci tersebut memiliki hubungan matematis (karena itu disebut juga sistem asimetris).
28
Disebut kunci publik karena kunci yang digunakan pada proses enkripsi dapat diketahui oleh orang banyak tanpa membahayakan kerahasiaan kunci dekripsi, sedangkan kunci yang digunakan untuk proses dekripsi hanya diketahui oleh pihak yang tertentu (penerima). Mengetahui kunci publik semata tidak cukup untuk menentukan kunci rahasia. Pasangan kunci publik dan kunci rahasia menentukan sepasang transformasi yang merupakan invers satu sama lain, namun tidak dapat diturunkan satu dari yang lain.
Gambar 2.2 model sistem kriptografi asimetris
2. 5 Algoritma RSA (RIVEST SHAMIR ADLEMAN) Algoritma RSA ( Rinaldi Munir, 2004 ) dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Dibidang kriptografi, RSA adalah sebuah algoritma pada enkripsi public key. RSA merupakan salah satu algoritma yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang.
29
Menurut (Douglas R Stinson,1995) kekuatan dan keamanan algoritma RSA yaitu Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = pxq 2.5.1. Pembangkitan Kunci 1. Pilih dua buah bilangan prima sembarang, p dan q. 2. Hitung r = p q. Sebaiknya pq, sebab jika p=q maka r=p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r. 3. Hitung (r) = (p – 1)(q – 1). 4. Pilih kunci publik, PK, yang relatif prima terhadap (r), (relatif prima berarti( GCD(PK, (r)) = 1) 5. Bangkitkan kunci rahasia dengan menggunakan persamaan yaitu SK PK 1 (mod (r)). Perhatikan bahwa SK PK 1 (mod (r)) ekivalen dengan SK PK = 1 + m(r), sehingga SK dapat dihitung dengan
SK
1 m ( r ) PK Akan terdapat bilangan
bulat m yang menyebabkan memberikan bilangan bulat SK.
30
2.5.2. Proses enkripsi pesan Plainteks disusun menjadi blok-blok x1, x2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai r – 1. Setiap blok xi dienkripsi menjadi blok yi dengan rumus yi = xi PK mod r 2.5.3. Proses dekripsi pesan Setiap blok cipherteks yi didekripsi kembali menjadi blok xi dengan rumus xi = yi SK mod r 2.5.4 Teori Bilangan pada RSA Banyak teori yang dapat membangun algoritma kriptografi. Salah satunya adalah teori bilangan yang merupakan teori mendasar dalam memahami teknik kriptografi khususnya untuk algoritma kriptografi RSA. Berikut adalah beberapa teorema yang mendukung terhadap proses enkripsi dan deskripsi pada algoritma RSA. 2.5.4.1 Pembagi Bersama Misalkan a,b
Ζ, dengan a,b ≠ 0 . Bilangan bulat positif c
dikatakan pembagi bersama dari a dan b jika c | a dan c | b (Sukirman, 2004). Karena 1 adalah pembagi (faktor) dari setiap bilangan bulat maka 1 adalah pembagi bersama dari sembarang a dan b yang tak nol. Jadi himpunan pembagi bersama dari dua bilangan bulat tak nol tidak pernah kosong. Dengan demikian pasti ada anggota dari himpunan tersebut yang terbesar yang disebut
31
Pembagi Bersama Terbesar ( greatest common divisor) dari a dan b, ditulis gcd(a,b) . 2.5.4.2 Pembagi Bersama Terbesar (PBB) Dua bilangan bulat a dan b dikatakan prima relatif atau koprima jika gcd(a,b) = 1 ( Sukirman, 2004 ). 2.5.4.3 Bilangan Prima Bilangan bulat lebih dari 1 dan tidak habis dibagi oleh sembarangan bilangan bulat positif selain 1 dan dirinya sendiri disebut bilangan prima. Bilangan bulat yang lebih besar dari 1 dan bukan prima disebut bilangan komposit. 2.5.4.4 Aritmetika Modulo Aritmetika modulo (modular arithmetic) memainkan peranan yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator mod memberikan sisa pembagian. Misalnya 23 dibagi 5 memberikan hasil 4 dan sisa 3, sehingga kita tulis 23 mod 5 = 3. 2.6
Standar ASCII (America Standard Code for information Interchange) Ascii atau kode standar amerika untuk pertukaran informasi merupakan suatu standar internasional dalam kode huruf dan symbol seperti Hex dan Unicode, tetapi ascii lebih bersifat universal.
32
Gambar 2.3 Karakter-karakter Ascii Contoh Kasus RSA a. Pembangkitan Kunci
Pilih bilangan p dan q : p = 47 dan q = 71 (keduanya prima)
Selanjutnya, hitung nilai r = p q = 3337 dan
(r)= (p – 1)(q – 1) = 3220.
Pilih kunci publik PK = 79, karena 79 relatif prima dengan 3220.
PK dan r dapat dipublikasikan ke umum.
33
Selanjutnya akan dihitung kunci dekripsi SK dengan menggunakan persamaan :
SK
1 ( m 3220) 79
Dengan mencoba nilai-nilai m = 1, 2, 3, …, diperoleh nilai SK yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.
b. Proses Enkripsi Misalkan plainteks yang akan dienkripsikan adalah X = Keamanan Sistem Komputer atau dalam sistem desimal (pengkodean ASCII) adalah K : 75
Spasi : 32
K : 75
e : 101
S : 83
o : 111
a : 97
i : 105
m : 109
m : 109
s : 115
p :112
a : 97
t : 116
u : 117
n : 110
e : 101
t :116
a : 97
m : 109
e :101
34
n : 110
Spasi : 32
r : 114
X=7510197109971109711032831051151161011093275111109112 117116101114 Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit: x1=751
x9=105
x17=911
x2=019
x10=115
x18=211
x3=710
x11=116
x19=711
x4=997
x12=101
x20=610
x5=110
x13=109
x21=111
x6=971
x14=327
x22=004
x7=103
x15=511
x8=283
x16=110
Ket : jika pada digit terakhir sisa 1 angka maka didepan angka tersebut ditambah 00, dan jika sisa 2 digit angka maka didepan angka tersebut ditambah 0. Blok-blok plainteks dienkripsikan dengan rumus : xi PK mod r Ket : PK = 79, r = 3337 Maka proses enkripsi dilakukan sebagai berikut :
35
75179 mod 3337 = 3289= y1 01979 mod 3337 = 1265= y2 71079 mod 3337 = 1633= y3 99779 mod 3337 = 1436= y4 11079 mod 3337 = 2668= y5 97179 mod 3337 = 387= y6 10379 mod 3337 = 101= y7 28379 mod 3337 = 283= y8 10579 mod 3337 = 193= y9 11579 mod 3337 = 732= y10 11679 mod 3337 = 1031= y11 10179 mod 3337 = 1113= y12 10979 mod 3337 = 1864= y13 32779 mod 3337 = 856= y14 51179 mod 3337 = 1486= y15 11079 mod 3337 = 2668= y16 91179 mod 3337 = 447= y17 21179 mod 3337 = 127= y18 71179 mod 3337 = 2415= y19
36
61079 mod 3337 = 1127= y20 11179 mod 3337 = 2237= y21 00479 mod 3337 = 2497= y22 Jadi, cipherteks yang dihasilkan adalah Y=328912651633143626683871012831937321031111318648561486266 84471272415112722372497 22 c. Proses Dekripsi Dekripsi dilakukan dengan menggunakan rumus yi SK mod r Ket : SK = 1019, r = 3337 Blok-blok cipherteks didekripsikan sebagai berikut: 3289 1019 mod 3337 = 751= x1 1265 1019 mod 3337 = 019= x2 1633mod 3337 = 710= x3 1436 1019 mod 3337 = 997= x4 2668 1019 mod 3337 = 110= x5 3871019 mod 3337 = 971= x6 1011019 mod 3337 = 103= x7 2831019 mod 3337 = 283= x8
37
1931019 mod 3337 = 105= x9 7321019 mod 3337 = 115= x10 1031 1019 mod 3337 = 116= x11 1113 1019 mod 3337 = 101= x12 1864 1019 mod 3337 = 109= x13 8561019 mod 3337 = 327= x14 1486 1019 mod 3337 = 511= x15 2668 1019 mod 3337 = 110= x16 4471019 mod 3337 = 911= x17 1271019 mod 3337 = 211= x18 2415 1019 mod 3337 = 711= x19 1127 1019 mod 3337 = 610= x20 2237 1019 mod 3337 = 111= x21 2497 1019 mod 3337 = 4= x22 Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula X=7510197109971109711032831051151161011093275111 109112117116101114 yang dalam karakter ASCII adalah X = Keamanan Sistem Komputer
38
2.7
Java Java adalah suatu teknologi di dunia software komputer, yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman
pemrograman, Java
dikenal
bahasa
tingkat tinggi. Java mudah dipelajari, terutama bagi
programmer yang telah mengenal C/C++. pemrograman
sebagai
berorientasi
objek
Java
merupakan
yang merupakan
bahasa
paradigma
pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di semua platform. Dan juga dirancang untuk menghasilkan aplikasi – aplikasi dengan performansi yang terbaik, seperti aplikasi database Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrograman Java. Sedangkan Java bersifat neutral architecture, karena Java Compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitekture perangkat keras yang disebut sebagai Java Bytecode. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu: 1.
Java Virtual Machine (JVM).
2.
Java Application Programming Interface (Java API).
Sun membagi arsitektur Java membagi tiga bagian, yaitu:
39
1.
Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar
dengan
beraneka
ragam
klien
dengan
kompleksitas yang tingg. Merupakan superset dari Standar Java. 2.
Standar Java (J2SE), ini adalah yang biasa dikenal sebagai bahasa Java.
3.
Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk wireless device / mobile device. (Asep, Modul Pemrograman Java, 2010).
2.8 Java2 Micro Edition (J2ME) 2.8.1 Pengertian J2ME Java2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya. J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada di J2SE terdapat juga di J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimilki oleh J2SE. (Sholahudin,Rosa. 2010) Pemrograman Arsitektur J2ME dapat dilihat pada gambar berikut:
Profile Configuration
Kumpulan Library
JVM
Sistem Operasi Gambar 2.4 Arsitektur J2ME Configuration merupakan Java library minimum dan kapabilitas yang dipunya oleh pengembang J2ME. Configuration hanyalah mengatur hal-hal tentang
40
kesamaan sehingga dapat dijadikan ukuran kesesuaian antar-device. Dalam J2ME telah didefinisikan dua buah konfigurasi yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuartion) untuk perangkat yang lebih besar.
CDC
J2SE
CLDC
Gambar 2.5 Ruang Lingkup CLDC dan CDC Profile membahas sesuatu yang spesifik untuk sebuah perangkat. Dalam J2ME terdapat 2 buah profile yaitu MIDP dan Foundation Profile. Keterhubungan antara configuration dan profile yang ada pada J2ME beserta jenis mesin virtualnya, dapat dilihat pada gambar: aplikasi J2ME
Aplikasi J2ME
(Midlet ) KVM MIDP
Applet/Aplikasi J2SE
CVM
JVM
Foundation Profile
J2SE CLDC
CDC
Kompleks Gambar 2.6 Hubungan J2ME dan J2SE
41
2.8.2 Connected Limited Device Configuration (CLDC) MIDP
CLDC
Kumpulan Library KVM
Sistem Operasi Gambar 2.7 CLDC CLDC atau Connected Limited Device Configuration adalah perangkat dasar J2ME, spesifikasi dasar
yang berupa library dan API yang
diimplementasikan pada J2ME. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package kelas, dan sebagian fungsi Java Virtual Machine yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat-alat tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine). 2.8.3 Connected Device Configuration (CDC) CDC atau Connected Device Configuration adalah spesifikasi dari J2ME. CDC terdiri dari virtual machine dan kumpulan library dasar untuk dipergunakan pada profile industri. Implementasi CDC pada J2ME adalah source code yang menyediakan sambungan dengan macam-macm platform. (Sholahudin,Rosa. 2010) Berikut adalah perbandingan antara CLDC dan CDC:
42
Tabel 2.1 Perbandingan CLDC dan CDC: CLDC
CDC
Mengimplementasikan sebagian dari Mengimplementasikan
seluruh
J2SE
J2SE
JVM yang digunakan adalah KVM
JVM yang digunakan adalah CVM
fitur
Digunakan pada perangkat genggam Digunakan pada perangkat genggam (handphone,
PDA,
twoway pager) (internet TV, Nokia Communicator, car
dengan memory terbatas (160-512 KB)
TV) dengan memori 2MB
Prosesor: 16/32 bit
Prosesor: 32 bit
2.8.4 Mobile Information Device Profile (MIDP) MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan diatas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini MIDP 1.0 DAN midp 2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 adalah API untuk multimedia.
2.8.5 Kilobyte Virtual Machine (KVM) KVM adalah paket JVM yang didesain untuk perangkat kecil. KVM diimplementasikan dengan menggunakan C sehingga sangat mudah beradaptasi pada tipe platform yang berbeda.
43
2.8.6 C-Virtual Machine (CVM) CVM adalah paket JVM
optimal yang digunakan pada CDC. CVM
mempunyai seluruh fitur dari virtual machine yang didesain untuk perangkat yang memerlukan fitur-fitur Java2 virtual machine. 2.8.7 MIDLET MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDP adalah bagian dari kelas javax.microedition.midlet.MIDLET yang didefinisikan pada MIDP. MIDLET berupa sebuah kelas abstrak yang merupakan subkelas dari bentuk dasar aplikasi sehingga antarmuka antar aplikasi dan aplikasi manajemen pada perangkat dapat terbentuk. 2.8.7.1 Daur Hidup MIDlet MIDlet terdiri dari beberapa metode yang harus ada, yaitu constructor (), protected void startApp( ) throws MIDlet StateChangeException, protected void pauseApp ( ), protected void destroyApp (Boolean unconditional) throws MIDletStateChangeException. Alur Hidup MIDlet sebagai berikut: konstruktor
jedah
MIDlet memanggil PauseApp ( ) MIDlet memanggil startApp ( )
MIDlet memanggil destroyApp ( ) untuk terminasi
terminasi Gambar 2.8 Alur Hidup Midlet
aktif
44
2.8.7.2 Emulator Perangkat MIDlet J2ME
Wireless
Toolkit
dapat
didownload
di
http://java.sun.com/j2me/ secara gratis. J2ME Wireless Toolkit adalah kakas yang menyediakan lingkungan emulator, dokumentasi beserta contoh-contoh aplikasi Java untuk perangkat kecil (small device). J2ME WTK berbasiskan pada CLDC dan MIDP. 2.8.8 JAD (Java Application Descriptor) Digunakan untuk mendeskripsikan isi aplikasi untuk keperluan pemetaan. File JAD berisi deskripsi file JAR (Java Archive) dan pemetaan atribut MIDlet, sedangkan JAR berisi kumpulan kelas dan resource. 2.9 RMS (Record Management System) RMS adalah kumpulan record, dan record disimpan sebagai array dari byte dalam sebuah record store. RMS memiliki orientasi record basis data yang sederhana sehinggaMIDlet dapat menyimpan informasi dan mengaksesnya. MIDlet yang berbeda dapat mengakses RMS yang sama. Pada konsepnya , record yang disimpan dalam record store diakses berdasarkan recorded yang berupa integer. RecordId ini biasanya digunakan untuk mengakses record seperti indeks pada pengaksesan array berikut: (Sholahudin,Rosa. 2010)
Record 1
Byte 0
Byte 1
Byte 2
……..
Byte n
2
Byte 0
Byte 1
Byte 2
……..
Byte n
45
3
Byte 0
Byte 1
Byte 2
……..
Byte n
.
.
.
.
……..
Byte n
N
Byte 0
Byte 1
Byte 2
……..
Byte n
Tabel 2.2 Penyimpanan Record dalam RecordStore 2.10 UML (Unified Modelling Language) 2.10.1 Definisi UML UML
adalah
bahasa
grafis
untuk
mendokumentasikan,
menspesifikasikan, dan membangun sistem perangkat lunak. UML berorientasi objek menerapkan
banyak
level abstraksi,
tidak
bergantung proses pengembangan, tidak tergantung pada bahasa dan teknologi, pemaduan beberapa notasi di beragam metodologi, usaha bersama dari banyak pihak. Standar UML dikelola oleh OMG (Object Management Group). ( Bambang Hariyanto, 2004). UML
adalah
bahasa
permodelan
untuk
menspesifikasikan,
memvisualisasikan, membangun dan mendokumentasikan artifakartifak dari sistem. Kelebihan UML diantaranya: 1. Di dalam (system intensive process), metode diterapkan sebagai proses untuk menurutkan atau mengevolusikan sistem. 2. Sebagai bahasa UML digunakan untuk komunikasi, yaitu alat untuk menangkap pengetahuan (semantik) mengenai suatu subjek dan mengapresiasikan yang memperdulikan subjek sebagai suatu komunikasi. Subjek merupakan sistem yang dibahas.
46
3. Sebagai bahasa permodelan, UML focus pada pemahaman subjek melalui formulasi model dari subyeks ( dan konsep yang terhubung). Model memuat pengetahuan pada subyek, dan aplikasi dari pengetahuan ini berkaitan dengan intelejensia. 4. Berkaitan dengan unifikasi, UML memadukan praktek rekayasa terbaik sistem informasi dan industry, meliputi beragam tipe sistem (perangkat lunak dan non lunak), domain (bisnis,perangkat lunak) dan proses siklus hidup. 5. Ketika diterapkan untuk menspesifikasikan sistem,UML dapat digunakan untuk mengkomunikasikan “apa” yang diperlukan dari sistem dan “bagaimana” sistem dapat direalisasikan. 6. Ketika diterapkan untuk memvisualisasikan sistem, UML dapat digunakan untuk menjelaskan sistem secara visual sebelum direalisasikan. 7. Ketika diterapkan untuk membangun sistem, UML dapat digunakan untuk memandu realisasi sistem serupa dengan “blueprint”. 8. Ketika diterapkan untuk mendokumentasikan sistem, UML dapat digunakan untuk menangkap pengetahuan mengenai sistem pada seluruh siklus hidup. Diagram-diagram yang terdapat pada permodelan UML sebagai berikut : 1.
Use Case Diagram Use case diagram merupakan salah satu diagram untuk memodelkan aspek perilaku sistem. Masing-masing diagram use case menunjukan
47
sekumpulan use case, actor dan hubungannya. Diagram use case digunakan
untuk
memvisualisasikan,
memspesifikasikan
dan
mendokumentasikan kebutuhan perilaku sistem. Diagram -diagram use case merupakan pusat permodelan perilaku sistem, subsistem dan kelas. 2.
Class Diagram Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class diagram menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). menggambarkan struktur dan deskripsi
Class diagram
class, package dan objek
beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.( Bambang Hariyanto, 2004). Class diagram memiliki tiga area pokok : 1. Nama (dan stereotype) 2. Atribut 3. Metoda 3. Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
48
4. Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan prosesproses dan jalur-jalur aktivitas dari level atas secara umum. 5. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang menjadi trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. 6. Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek seperti
49
sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message.
Setiap message memiliki
sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama. 7. Component Diagram Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak,
termasuk ketergantungan (dependency) di antaranya.
Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada
compile time, link time, maupun
terbentuk dari beberapa
class dan/atau
run time. Umumnya komponen package, tapi dapat juga dari
komponen-komponen yang lebih kecil. 8. Deployment Diagram Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. (Dharwiyanti, Sri, Pengantar Unified Modelling Language (UML), 2003:4)
50
Pada penelitian kali ini penulis menggunakan visual paradigm for UML 7.0 edition dan Rational Rose untuk merancang aplikasi. Visual paradigm for UML 7.0 edition dan rational rose adalah perangkat lunak yang digunakan untuk perancangan aplikasi dengan tools UML. Tabel 2.3 Notasi UML No 1
Notasi
Keterangan Class Diagram, digunakan untuk mengambarkan kelas-kelas program. Terdiri atas nama kelas,
ttribute
yaitu properties yang dimiliki oleh kelas, dan operation yaitu aktifitas yang dapat dilakukan oleh kelas tersebut 2
Relationship merupakan hubungan antar class. Dapat berupa one to one, one to many, maupun many to one
3
Aktor merupakan pelaku-pelaku yang terlibat di dalam sistem.
4
Use case merupakan penjelasan kegiatan-kegiatan yang ada di dalam system
51
5
Initial node digunakan sebagai notasi awal dari proses yang dijalankan.
6
Action merupakan notasi yang menggambarkan aksi yang terjadi di dalam suatu proses
7
Activity Final Node merupakan notasi yang melambangkan akhir dari sebuah proses
8
Activity merupakan aktifitas yang ada di dalam sistem. Biasa digunakan pada proses yang melibatkan proses lainnya.
9
Activity dengan parameter biasa digunakan pada proses yang melibatkan proses lainnya serta mengambil parameter dari proses tersebut.
10
Lifeline merupakan state dari sebuah proses yang ada di dalam sistem. Nantinya, setiap bagian dari proses akan berhenti pada lifeline yang sesuai.
52
2.11 SMS 2.11.1 Pengertian SMS Short Message Service (SMS) adalah layanan dasar telekomunikasi seluler, yang tersedia baik di jaringan GSM maupun CDMA. Sebagai layanan dasar, service sms dapat digunakan pada semua jenis hand phone (HP). Setiap SIM card dari sebuah operator yang diaktifkan hampir dipastikan dapat langsung dapat digunanakan untuk sms, karena SIM card akan otomatis menyediakan setting service center di HP tersebut. (David Sudana, 2009). Kemudahan penggunaan, variasi layanan, dan promosi yang cukup gencar dari operator seluler menjadikan sms sebagai layanan yang cukup populer di masyarakat sejak akhir 90 an sampai sekarang. Seiring perkembangan teknologi dan kreativitas dari operator dan service provider, layanan sms yang mulanya hanya untuk saling kirim pesan antara subscriber (point-to-point) kini berkembang berkembang dan lebih variatif, seperti layanan polling, ringtone, sms premium, mobile bangking, ticketing dll. Untuk mengetahui bagaimana proses pengiriman sms berlangsung, kita perlu lebih dulu mengetahui arsitektur jaringan yang dipakai. Di Indonesia ada 2 macam teknologi jaringan seluler yang cukup populer, yaitu GSM dan CDMA. Teknologi jaringan itu kini mengalami perkembangan dan tentunya menawarkan berbagai kelebihan, diantaranya teknologi WCDMA, UMTS (3G) dan CDMA 2000. Pembahasan kali ini akan dijelaskan lebih fokus pada arsitektur jaringan GSM.
53
1.Arsitektur Jaringan GSM Dalam jaringan GSM umumnya ada beberapa perangkat pokok diantaranya BTS, BSC, MSC/VLR, HLR dan SMSC. Berikut ini penjelasan masing-masing perangkat. (David Sudana, 2009).
Arsitektur Jaringan GSM
Gambar 2.9 Arsitektur GSM Dalam jaringan GSM umumnya ada beberapa perangkat pokok diantaranya BTS, BSC, MSC/VLR, HLR dan SMSC. Berikut ini penjelasan masing-masing perangkat.Base Transceiver Station (BTS) BTS berfungsi sebagai perangkat tranceiver untuk melakukan komunikasi dengan semua handset (MS) yang aktif dan berada dalam area cakupannya (cell). BTS melaksanakan proses modulasi/demodulasi sinyal, equalisasi sinyal dan pengkodean error (error coding). Beberapa BTS dapat terhubung dengan sebuah BSC (Base stasion Controller), sementara itu radius cakupan dari suatu cell berkisar antara 10 sampai 200 m untuk cell terkecil hinggal beberapa kilometer untuk cell terbesar. Sebuah BTS biasanya dapat melayani 20–40 komunikasi panggilan secara bersamaan.
54
2.Base Station Controller (BSC) BSC menyediakan fungsi pengaturan pada beberapa BTS yang dikendalikannya. Diantaranya fungsi handover, konfigurasi cell site, pengaturan sumber daya radio, serta tuning power dan frekuensi pada suatu BTS. BSC merupakan simpul (konmsentrator) untuk menghubungkan dengan core network. Dalam jaringan GSM umumnya sebuah BSc dapat mengatur 70 buah BTS. (David Sudana, 2009). 3. Mobile Switching Center (MSC) and Visitor Location Register (VLR) MSC berfungsi melakukan fungsi switching dan bertanggung jawab untuk melakukan pengaturan panggilan, call setup, release, dan routing. MSC juga melakukan fungsi billing (terhubung ke billing system) dan sebagai gateway ke jaringan lain. VLR berisi informasi user yang bersifat dinamis yang sedang “attach” berada pada jaringan mobile, termasuk letak geografis. Biasanya VLR terintegrasi dengan MSC. Dari MSC sebuah jaringan seluler berkomunikasi dengan jaringan luar, misalnya : jaringan telepon rumah/Public Switched Telephone Network (PSTN), jaringan data Integrated Services Digital Network (ISDN), Circuit Switched Public Data Network (CSPDN), dan Packet Switched Public Data Network (PSPDN). (David Sudana, 2009) 4.Home Location Register (HLR) HLR adalah perangkat yang berisi data detail untuk tiap subscriber. Sebuah HLR umumnya mampu berisi ribuan sampai jutaan data pelanggan. Informasi yang ada di HLR antara lain Mobile Station ISDN Number
55
(MSISDN), International Mobile Subscriber Identity (IMSI), profile service subscriber,dll. Untuk komunikasi dengan elemen jaringan lain, HLR menggunakan protokol MAP (Mobile Application Part) 5.Short Message Service Center (SMSC) SMSC mempunyai peran penting dalam arsitektur sms. SMSC berfungsi menyampaikan pesan sms antar Mobile Station(MS)/ HP, dan juga melakukan fungsi store-and-forwarding sms jika nomor penerima sedang tidak dapat menerima pesan. Didalam jaringanya sebuah operator dapat mempunyai lebih dari satu perangkat SMSC, sesuai besar trafik sms jaringan tersebut. SMSC dapat berkomunikasi dengan elemen lain seperti MSC, dan HLR dengan menggunakan protokol MAP. Seiring berkembangnya layanan, SMSC juga dapat berkomunikasi dengan server aplikasi menggunakan sebuah protokol yang cukup pupuler yaitu, Short Message Peer tio Peer Protocol (SMPP). (David Sudana, 2009). 5.Diagram Alir SMS Ada dua macam layanan dasar SMS (David Sudana, 2009) : - Mobile terminated (from a SMS–C to a mobile station (MS)) SMS - Mobile originated (from a mobile station to a SMS–C) SMS SMS Mobile Terminating (SMS MT) SMS MT adalah pengiriman SMS dari SMSC ke MS. Untuk pegiriman SMS ini akan disediakan informasi pengiriman, baik delivery report untuk SMS yang berhasil maupun failure report untuk pengiriman yang gagal karena sebeb tertentu, sehingga memungkinkan SMSC untuk melakukan pengiriman
56
ulang. Diagram Alir SMS
Gambar 2.10 Diagram Alir SMS Mobile Terminating Diagram Alir SMS Mobile Terminating. (David Sudana, 2009)
1. A (misal: aplikasi) mengirim pesan ke SMSC 2. SMSC mengirimkan pesan ke SMS–GMSC. 3. SMS–GMSC menginterogasi HLR untuk informasi routing. 4. HLR membalas informasi routing ke SMS-GMSC. 5. SMS-GMSC meneruskan pesan ke MSC/VLR. 6. MS di-paging dan koneksi terbentuk antara MS dan network, sebagaimana dalam setup pangilan normal. (Dengan demikian posisi MS diketahui dan apakah MS boleh berada dalam network / proses otentikasi). 7. Jika otentikasi berhasil, MSC/VLR mengirim pesan sms tersebut ke MS. SMS dikirim melalui kanal signaling SDCCH) 8. Jika pengiriman berhasil, delivery report dikirim dari MSC/VLR ke SMSC. Namun jika tidak, MSC/VLR akan menginformasikan ke HLR, dan failure report
57
dikirim ke SMS–C. Pada kasus pengiriman yang gagal, HLR dan VLR akan mendapat informasi “Messages waiting” yang menunjukkan ada pesan di SMSC yang menunggu untuk dikirimkan ke MS. Informasi di HLR terdiri dari list SMSC pengirim pesan, sedangkan di VLR terdapat “flag” yang menunjukkkan apakah list pesan dalam keadaan kosong atau tidak. Jika MS available dan siap menerima pesan, maka HLR akan memberitahu SMSC. SMS Mobile Originating (SMS MO) SMS MO adalah proses pengiriman SMS dari MS ke SMSC. Jika SMS terkirim ke MS akan mendapat report “message sent”, sementara jika gagal MS report yang terlihat adalah “sending failed”. SMS Mobile Originating (SMS MO)
Gambar 2.11 Digram Alir SMS mo Diagram alir SMS MO: 1. MS membuat koneksi ke jaringan, sebagaimana dalam setup panggilan normal. 2. Jika otentikasi berhasil, MS akan mengirim SMS ke SMSC melalui MSC/VLR. Selanjutnya SMSC akan meneruskan SMS ke tujuan.
58
2.12 Spesifikasi Telepon Seluler Yang Digunakan Sebuah konfigurasi (configuration) mendefinisikan satu set library minimum dan kemampuan Virtual Machine minimum yang dimiliki sebuah device • Device yang memiliki kemampuan pemrosesan yang sama dan batasan memori yang sama memiliki konfigurasi yang sama.
• Contoh configuration – CDC (Connected Device Configuration) – CLDC (Connected Limited Device Configuration) Contoh Configuration: CLDC • Punya koneksi terbatas (limited) – artinya user bisa online jika diperlukan • Tidak mendukung tipe data floating point dan double • Device mungkin hanya memiliki memori non volatile 128 Kb, memori volatile 8 kb untuk data persisten, dan 32 Kb untuk runtime Java • Contoh device CLDC: Ponsel J2ME, PDA dengan koneksi wireless, pager dua arah
Contoh Configuration: CDC • Punya koneksi jaringan yang selalu online (connected) • Mendukung seluruh fitur bahasa Java (JDK1.3) • Device setidaknya memiliki 512kb memori non volatile dan 256 Kb memori volatile • Contoh Device: PDA Phone
Hp yang cocok untuk Aplikasi ini: 1. MIDP 2.0 2. CLDC 1.0 3. WMA 1.1
59
Ex: samsung C6225, Nokia 3230, Nokia 6670, Nokia 7610, Nokia 6620, Sony Ericsson K310, Sony Ericsson K320, Sony Ericsson K610, Samsung SGH-E330, SamsungSGH-E630,Samsung SGH-E800
2.13 RUP Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak. Gambar dibawah menunjukkan secara keseluruhan arsitektur yang dimiliki RUP. (Ahmad Musnansyah, MT.2010) RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML). Melalui gambar dibawah dapat dilihat bahwa RUP memiliki, yaitu:
Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap phase dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition.
Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspekaspek statis dari proses pengembangan perangkat lunak yang dikelompokkan ke dalam beberapa disiplin. Proses pengembangan perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen penting, yakni who is doing, what, how dan when. Dimensi ini terdiri atas
Business Modeling, Requirement, Analysis and Design, Implementation, Test, Deployment, Configuration dan Change Manegement, Project Management, Environtment.
60
Gambar 2.12 Arsitektur Rational Unified Process
Pada penggunaan kedua standard tersebut diatas yang berorientasi obyek (object orinted) memiliki manfaat yakni: (Ahmad Musnansyah, MT.2010) • Improve productivity Standard ini dapat memanfaatkan kembali komponen-komponen yang telah tersedia/dibuat sehingga dapat meningkatkan produktifitas • Deliver high quality system Kualitas sistem informasi dapat ditingkatkan sebagai sistem yang dibuat pada komponenkomponen yang telah teruji (well-tested dan well-proven) sehingga dapat mempercepat delivery sistem informasi yang dibuat dengan kualitas yang tinggi. • Lower maintenance cost Standard ini dapat membantu untuk menyakinkan dampak perubahan yang terlokalisasi dan masalah dapat dengan mudah terdeteksi sehingga hasilnya biaya pemeliharaan dapat dioptimalkan atau lebih rendah dengan pengembangan informasi tanpa standard yang jelas.
61
• Facilitate reuse Standard ini memiliki kemampuan yang mengembangkan komponenkomponen yang dapat digunakan kembali untuk pengembangan aplikasi yang lainnya. • Manage complexity Standard ini mudah untuk mengatur dan memonitor semua proses dari semua tahapan yang ada sehingga suatu pengembangan sistem informasi yang amat kompleks dapat dilakukan dengan aman dan sesuai dengan harapan semua manajer proyek IT/IS yakni deliver good quality software within cost and schedule time and the users accepted.
2.13.1 Fase RUP
Inception/insepsi
Elaboration/elaborasi
Construction/konstruksi
Transition/transisi
•
Inception –
Menentukan Ruang lingkup proyek
–
Membuat ‘Business Case’
–
Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan
•
Elaboration –
Menganalisa berbagai persyaratan dan resiko
–
Menetapkan ‘base line’
–
Merencanakan fase berikutnya yaitu construction
62
•
Construction –
Melakukan sederetan iterasi
–
Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing
•
Transistion –
Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
–
Dalam fase ini dilakukan: •
Beta dan performance testing
•
Membuat dokumentasi tambahan seperti; training, user guides dan sales kit
•
Membuat rencana peluncuran produk ke komunitas pengguna
Peran Use Case Pada Setiap Fase Peran use case pada setiap fase sebagai berikut: (Ahmad Musnansyah, MT. 2010)
•
•
•
Inception –
Menolong mengembangkan scope proyek
–
Menolong menetapkan penjadwalan dan anggaran
Elaboration –
Menolong dalam melakukan analisa resiko
–
Menolong mempersiapkan fase berikutnya yaitu konstruksi
Construction –
Melakukan sederetan iterasi
–
Pada setiap iterasi akan akan melibatkan proses berikut: analisa desain, implementasi dan testing
•
Transistion –
Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
–
Dalam fase ini dilakukan: •
Beta dan performance testing
63
•
Membuat dokumentasi tambahan seperti; training, user guides dan sales kit
•
Membuat rencana peluncuran produk ke komunitas pengguna
2.14 Studi Sejenis : 1. Elliptic Curve Digital Signature Algorithm (ECDSA) Departemen Teknik Informatika ITB oleh Andy Triwinarko. Kelebihan: 1. Algoritma Kurva Eliptik memiliki panjang kunci yang lebih pendek yaitu 160 bit dibandingkan dengan RSA yang mempunyai panjang kunci 1024 bit, sehingga memudahkan programmer dalam menghitung kunci public maupun kunci privatnya. 2. Algoritma Kriptografi Eliptik mempunyai performance yang jauh lebih baik dibandingkan RSA. Kekurangan : 1. Kriptografi kurva eliptik memiliki dua buah bidang terbatas yaitu Fp dan F2 m, dan yang diimplementasikan adalah bidang terbatas Fp,sehingga keakuratannya kurang dapat dibuktikan. 2. Karena mudah dalam penghitungannya sehingga memudahkan pihak lain untuk menghack program yang dibuat dengan kriptografi ini.
64
2. Aplikasi Enkripsi SMS berbasis J2ME menggunakan Vigenere Cipher Oleh Ahmad Faqih, tahun 2005. Kekurangan ; Tingkat keamananannya dibandingkan dengan RSA lebih lemah, karena algoritma ini dapat diserang oleh metode kasisi. Cara kerja Metode Vigenere Cipher ini yaitu setiap ciphertext selalu menggantikan nilai dari setiap plaintext tertentu, misalkan menukar nukar angka menjadi huruf dan sebaliknya. Kelebihan: Algortima ini sangat dikenal karena mudah dipelajari dan diimplementasikan. 3. Implementasi Algoritma RC4 untuk enkripsi SMS pada telepon seluler oleh Abdul Malik, tahun 2003. Kekurangan: 1. Pesan dapat bertambah besar, karena setiap kali mengirimkan SMS. Nomor port akan dikirim bersama dengan SMS dank arena pesan akan diubah ke dalam format hexadecimal yang menyebabkan pesan memiliki besar 2x lipat dari pesan aslinya. 2. Waktu yang dibutuhkan untuk mengenkripsi SMS atau mendeskripsi akan bertambah besar jika jumlah rotasi yang digunakan Kelebihan: 1. Algoritma ini sangat sederhana dan mudah diimplementasikan.
BAB III METODOLOGI PENELITIAN
3.1.
Metode Pengumpulan Informasi dan Data Dalam rangka penyusunan penelitian (skripsi) ini, penulis membutuhkan data atau informasi dan referensi yang relative lengkap untuk mendukung materi urutan pembahasan. Oleh karena itu penulis melakukan riset atau penelitian untuk mendapatkan data dan referensi yang diperlukan. Berikut adalah metode pengumpulan data dan riset yang dibutuhkan. Adapun metode pengumpulan data-data dan informasi yang diperlukan adalah studi pustaka,yaitu teknik pengumpulan data dengan menghimpun dan menganalisis dokumen. Dokumen yang termasuk didalamnya yaitu penelitian penelitian terdahulu, buku, artikel dan jurnal yang berkaitan dengan objek penelitian. Secara rinci yang penulis lakukan pada studi pustaka ini adalah: 1) Mempelajari buku-buku atau dokumen-dokumen dan artikel-artikel yang berhubungan dengan teknologi SMS, teknik mengamankan pesan dengan kriptografi. 2) Menganalisa bahasa pemrograman yang sesuai untuk perangkat bergerak seperti telepon seluler. Pustaka-pustaka yang dijadikan acuan dapat dilihat di Daftar Pustaka.
65
66 3) mempelajari penelitian sebelumnya yaitu enkripsi SMS dibangun untuk telepon sellular yang memanfaatkan bidang kriptografi seperti metode RC4, vigener chipper, dan metode RSA yang akan diimplementasikan penulis. 3.2.
Metodologi Pengembangan Sistem Sesuai dengan yang telah disebutkan pada BAB I, dalam penelitian ini, penulis melakukan pengembangan sistem dengan metode Rational Unified Process (RUP). Pemilihan metode penelitian Rational Unified Process (RUP) ini dilakukan dengan alasan aplikasi yang akan dikembangkan merupakan aplikasi dengan skala kecil / menengah, serta terfokus pada lingkup tertentu. Selain itu pengembangan aplikasi ini dilakukan dalam waktu singkat. Berikut ini adalah beberapa kelebihan dari RUP: 1. Penulis dapat memanfaatkan kembali komponen-komponen yang telah tersedia/dibuat sehingga dapat meningkatkan produktifitas 2. Mempercepat delivery sistem informasi yang dibuat dengan kualitas yang tinggi. 3. Lebih mudah mendeteksi biaya pemeliharaan sehingga biaya menjadi lebih murah. Fase Model pengembangan RUP yang dibuat oleh Ahmad Musnansyah,
MT
melingkupi fase-fase
Musnansyah, MT, 2006):
sebagai berikut (Ahmad
67
Gambar 3.1. Tahapan RUP (Sumber : Ahmad Musnansyah, MT, 2006) Tahapan-tahapan yang dilakukan oleh penulis dalam melakukan penelitian pengembangan aplikasi ini adalah : 3.2.1. Inception Pada tahap ini penulis menentukan ruang lingkup proyek dari hasil observasi yang penulis lakukan, meliputi dari hasil penelitian skripsi-skripsi terdahulu. 3.2.2. Elaboration Pada tahap ini setelah penulis mengdakan observasi/ studi pustaka , hasil dari hasil dari observasi tersebut kemudian penulis melakukan identifikasi masalah , dan menentukan alur bisnis dan aplikasi serta wilayah persoalan data yang akan didukung oleh sistem yang akan dikembangkan serta ditentukan pula jangkauan atau batasan sistem.
68 Didalam elaboration terdapat dua tahapan yaitu: 1. Analisis Ada tiga fase dalam tahapan analisis sistem pada alur pengembangan sistem RUP, yaitu: a. Analisis Masalah. b. Analisis
Persyaratan,
mendefinisikan
dan
memprioritaskan
persyaratan-persyaratan bisnis. c. Analisis Keputusan, setelah mengetahui permasalahan dan persyaratan sistem yang diinginkan maka fase selanjutnya adalah analisis keputusan yang akan menghasilkan arsitektur aplikasi . Pada bagian ini juga digambarkan spesifikasi atau alur kerja system yang diusulkan. Hal ini dapat dilihat pada sub-bab 4.2. Perancangan sistem dilakukan setelah tahap analisis telah rampung, Adapun metode yang digunakan adalah Desain Berorientasi Objek atau Object Oriented Design (OOD). Pada bagian ini penulis melakukan perancangan aplikasi dan perancangan interface. 2. Modelling (Perancangan) a. Perancangan Aplikasi Untuk perancangan aplikasi, penulis menggunakan alat bantu (tools) yaitu Unified Modelling Language (UML). UML merupakan sebuah bahasa yang menjadi standar untuk visualisasi, perancangan serta pendokumentasian sebuah software. Disebabkan UML menggunakan class
69 dan operation, maka penggunaan UML lebih cocok digunakan dalam perancangan aplikasi yang bersifat object oriented. Perancangan aplikasi yang penulis lakukan dengan menggunakan tools UML ini meliputi: 1.
Penentuan Actor
2.
Perancangan Use Case Diagram
3.
Perancangan Use Case Scenario
4.
Perancangan Sequence Diagram
5.
Spesifikasi proses yang diusulkan
Dalam perancangan dengan UML ini, penulis menggunakan software IBM Rational Rose 7.0 Enterprise Edition. b. Perancangan Tampilan Pada tahap ini, penulis melakukan perancangan terhadap user interface dari aplikasi ini. Perancangan yang dilakukan meliputi halaman-halaman yang ada di dalam sistem. Perincian mengenai rancangan tampilan dapat dilihat di Bab IV.
3.2.3. Construction Dalam tahapan construction ini meliputi bagaimana suatu aplikasi itu bisa diimplementasikan dan diuji coba.
70 3.2.3.1 Implementasi Dalam tahapan implementasi ini dijelaskan perangkat keras dan perangkat lunak apa saja yang dibutuhkan untuk mengimplementasikan aplikasi enkripsi sms ini. 3.2.3.1.1 Coding Pada tahap ini dilakukan pengkodean sistem (coding), proses instalasi aplikasi yang baru agar nantinya dapat dilakukan evaluasi terhadap system baru yang berjalan tersebut. Pada developing aplikasi digunakan bahasa pemrograman Java, khususnya J2ME bahasa Java tersebut digunakan sebagai implementasi kriptografi dengan algoritma RSA. 3.2.3.1.2 Testing Pada tahap ini juga dilakukan testing aplikasi yang telah dibangun, testing aplikasi menggunakan metode blackbox, pengujian ini dilakukan oleh peneliti dan beberapa orang user yang diambil secara random. Testing ini diperlukan untuk menjamin kualitas apakah aplikasi sesuai dengan yang diharapkan. Pada penelitian kali ini penulis membatasi masalah sampai pada tahapan construction.
3.2.4 Transition Pada tahap ini penulis membuat apa yang sudah dimodelkan ditahapan-tahapan sebelumnya menjadi suatu barang yang layak jadi.
71 Didalam tahapan transition ini penulis telah membuatkan user manual, yaitu cara kerja pemakaian dari aplikasi ini.
3.3. Kerangka Berpikir Berikut ini adalah kerangka berpikir yang ada pada penelitian ini :
72
Gambar 3.2. Kerangka Berpikir
73
BAB IV ANALISA DAN PERANCANGAN SISTEM
Pada bab ini, akan dibahas secara detail dan terperinci mengenai aplikasi sistem yang akan diimplementasikan dengan menerapkan metodologi penelitian yang telah diuraikan pada bab sebelumnya. Pada bab sebelumnya telah dibahas, bahwa metode pengembangan sistem yang akan digunakan dalam pengembangan aplikasi ini adalah metode pemodelan berorientasi objek dengan alur pendekatan Rational Unified Process (RUP) . Di dalam bab empat ini diuraikan tentang tahap pengembangan sistem Rational Unified Process (RUP) diantaranya adalah Inception, Elaboration yang terdiri dari analisis masalah, analisis persyaratan, dan analisis keputusan, tahap Construction yang terdiri dari desain aplikasi dan implementasi system, dan tahap terakhir yaitu Transition yang terdiri dari dokumentasi system dan user manual. 4.1
Inception Perangkat lunak atau suatu aplikasi merupakan bagian dari suatu sistem
yang lebih besar, maka hal pertama yang dilakukan adalah menentukan kebutuhan untuk semua elemen sistem dan kemudian dilanjutkan dengan menentukan kebutuhan perangkat lunak. Penentuan kebutuhan sistem ini sangat perlu ketika perangkat lunak harus berinteraksi dengan elemen-elemen sistem yang lain seperti perangkat keras, dan manusia.
74
Penelitian pengembangan sistem yang dilakukan lebih difokuskan pada batasan masalah dan ruang lingkup sistem yang berkaitan dengan enskripsi data sms dengan menggunakan algoritma RSA. Pada penerapan aplikasi ini sebelumnya dilakukan proses observasi dilapangan dan melakukan penelitian terhadap skripsi-skripsi sebelumnya. Teknologi yang sudah biasa digunakan ini terkadang memiliki kelemahan khususnya pada keamanan data, maka dari hasil observasi yang telah diperoleh diperlukan suatu aplikasi yang dapat mengenskripsi data sms, sehingga pesan yang disampaikan hanya di ketahui oleh pengirim dan penerima SMS. 4.2
Elaboration Pada bagian Elaboration atau perencanaan dilakukan analisis masalah dan
sistem untuk mempelajari suatu masalah dan mempunyai tujuan utama untuk melakukan tindakan. Analisis masalah yang paling utama di skripsi ini adalah untuk enkripsi SMS pada telepon selluler melakukan implementasi algoritma RSA Terdapat tiga tahapan analisis sistem dalam metodologi RUP yang akan digunakan dalam menganalisis sistem yang akan dirancang. Diantaranya adalah Analisis Masalah (Problem Analysis), Analisis Persyaratan (Requirement Analysis), dan Analisis Keputusan (Decision Analysis). 4.2.1
Analisis
4.2.1.1 Analisis Masalah (Problem Analysis) Dalam Tugas akhir ini, berdasarkan studi literatur dan hasil observasi yang dilakukan. Dari hasil pengamatan sementara diperoleh permasalahan yaitu jika ditinjau dari sisi keamanan data dan kerahasiaan pengaksesan. Pengamanan dalam
75
aplikasi SMS yang ada hanya berupa keamanan pada handphone, bukan keamanan pada SMS yang disampaikan. Salah satu cara untuk melakukan pengamanan data
yaitu dengan
menggunakan sistem keamanan data berupa metode kriptografi. Data yang akan di enkripsi berupa SMS yang telah dikirim oleh pengirim sms. Masalah utama pada penelitian ini adalah implementasi kriptografi yang dengan menggunakan algoritma RSA. Setelah dijelaskan dengan rinci permasalahan diatas, maka pada bagian ini akan dibahas mengenai analisis terhadap algoritma RSA dan juga terhadap problems (masalah-masalah) yang dihadapi dan opportunities (peluang-peluang) yang bisa diambil dari keadaan sistem saat ini. Analisis terhadap problem dan opportunities akan diperlihatkan dengan menggunakan metode yaitu Matriks Masalah, Kesempatan, Tujuan dan Batasan. a. Analisis Algoritma RSA Algorima RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmetika modulo. Kunci enkripsi maupun kunci dekripsi keduanya harus berupa bilangan bulat. Kunci enkripsi tidak dirahasiakan dan diketahui umum (sehingga dinamakan juga kunci publik), namun kunci untuk dekripsi bersifat rahasia . Kunci dekripsi dibangkitkan dari beberapa buah bilangan prima bersamasama dengan kunci enkripsi. Untuk menemukan kunci dekripsi, suatu bilangan non prima harus difaktorkan menjadi faktor primanya. Dalam kenyataannya,
76
memfaktorkan bilangan non prima menjadi faktor primanya bukanlah pekerjaan yang mudah. Belum ada algoritma yang secara efisien yang dapat melakukan pemfaktoran tersebut. Semakin besar bilangan non primanya maka semakin sulit pulapemfaktorannya. Semakin sulit pemfaktorannya, semakin kuat pula algoritma RSA. Secara ringkas, algoritma RSA adalah sebagai berikut : 1. Pilih dua buah bilangan prima sembarang, sebut a dan b. Jaga kerahasiaan nilai a dan b ini. 2. Hitung n = a x b. 3. Hitung m = (a - 1) x (b - 1). Sekali m telah dihitung, a dan b dapat dihapus untuk mencegah diketahuinya oleh orang lain. 4. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang relatif prima terhadap m. 5. Bangkitkan kunci dekripsi d, dengan kekongruenan ed º 1 (mod m). Lakukan enkripsi terhadap isi pesan dengan persamaan ci = pi e mod n, yang dalam hal ini pi adalah blok plainteks, ci adalah chiperteks yang diperoleh, dan e adalah kunci enkripsi (kunci publik). Harus dipenuhi persyaratan bahwa pi harus terletak dalam himpunan nilai 0, 1, 2, ..., n-1 untuk menjamin hasil perhitungan tidak berada diluar himpunan. 6. Proses dekripsi dilakukan dengan menggunakan persamaan pi = ci d mod n, dalam hal ini d adalah kunci dekripsi.
77
Seperti sudah dikatakan sebelumnya, kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = a x b. Sekali n berhasil difaktorkan menjadi a dan b, maka m = (a - 1) x (b - 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e x d º 1 (mod m). Jika hal ini sampai terjadi berarti proses dekripsi dapat dilakukan oleh orang yang tidak berhak. b. Problems, Opportunities, Objectives, and Constraints Matrix Selanjutnya hasil analisis permasalahan dan peluang akan disebutkan secara lengkap pada Matriks Masalah, Kesempatan, Tujuan, dan Batasan (Problems, Opportunities, Objectives, and Constraints Matrix). Matriks ini akan dijabarkan dalam dua tabel yaitu Analisis Sebab dan Akibat (Cause and Effect Analysis) dan tabel Tujuan-tujuan Perbaikan Sistem (System Improvement Objectives). Cause and Effect Analysis merupakan sebuah tehnik tempat masalah-masalah dipelajari untuk menentukan penyebabpenyebab dan akibat-akibatnya, sampai penyebab dan akibat tersebut tidak kembali menghasilkan gejala-gejala masalah yang lainnya. Sedangkan System Improvement Objectives memiliki tujuan yaitu untuk menentukan kriteria di mana semua perbaikan pada sistem akan diukur dan untuk mengidentifikasi semua batasan yang membatasi fleksibilitas semua perbaikan tersebut. Berikut adalah tabel Cause and Effect Analysis dan System Improvement Objectives.
78
Tabel 4.1 Cause and Effect Analysis (Analisis Sebab Akibat) Problem
Cause and Effects
(Masalah)
(Sebab dan Akibat)
1. Belum adanya keamanan data pada saat pengiriman SMS.
Cause: Teknologi SMS saat ini belum adanya fasilitas keamanan data. Effect:
Penyampaian
informasi
dari
pengirim dan penerima sms dapat diketahui oleh pihak lain sehingga tidak adanya kerahasiaan dalam pesan yang disampaikan. 2.
Tidak adanya verifikasi dari
Cause:
Pesan
yang
dikirimkan
oleh
penerima SMS.
pengirim sms belum memiliki verifikasi, maksud dari verifikasi disini adalah tidak adanya fasilitas untuk untuk input password yang dimiliki oleh penerima dan pengirim sms. Effect: SMS / pesan yang sifatnya rahasia dapat dibaca oleh siapa saja yang memegang hp tersebut.
79
Tabel 4.2 System Improvement Objectives (Tujuan-Tujuan Perbaikan Sistem) System Objective
System Constraint
(Tujuan sistem)
(Batasan sistem)
1. Adanya pengenkripsian data
1.1
SMS, dengan menggunakan algoritma RSA.
Keterbatasan integrasi dengan jaringan operator handphone.
1.2
Pada pengimplementasian sistem baru bisa dilakukan dengan menggunakan simulator.
2. Adanya jaminan keamanan dan
2.1. Pada pengimplementasian sistem
kerahasiaan dari pesan yang
baru bisa dilakukan dengan
dikirimkan maupun yang
menggunakan simulator.
diterima.
Kebutuhan sistem yang dijelaskan pada tabel System Improvement Objectives juga merupakan sebagian besar hasil dari observasi yang sebelumnya terhadap penelitian-penelitian sebelumnya dan ruang lingkup sms itu sendiri. Sehingga diharapkan tidak ada lagi error dan kelalaian dalam pengembangan aplikasi. Untuk itu diperlukan sistem usulan yang dapat mencakup kebutuhan. 4.2.1.2 Analisis Persyaratan (Requirement Analysis) Fase ini adalah fase yang sangat penting dalam pengembangan sebuah sistem informasi. Fase ini bertujuan untuk menentukan apa yang dapat dilakukan oleh sistem dan harus memenuhi System Objectives dari sistem tersebut.
80
Requirements yang ada akan dibagi menjadi 2 (dua) bagian. Bagian pertama adalah Functional Requirement yaitu aktivitas dan service yang harus disediakan oleh sistem yang akan dikembangkan. Bagian kedua adalah Nonfunctional Requirement yaitu fitur-fitur lain yang diperlukan oleh sistem agar sistem dapat lebih memuaskan. a. Functional Requirements Sistem yang dikembangkan harus mempunyai functional requirements sebagai berikut: 1.
Aplikasi yang ada harus dapat mengirim sms ke handphone penerima. a. Pada saat pengiriman data sms, pengirim harus memasukan password dari sms tersebut. b. Aplikasi dapat melakukan enkripsi data SMS.
2. Handphone penerima ketika menerima pesan yang masuk dari HP pengirim data atau pesan yang ada masih di enkripsi, ketika HP penerima memasukan password proses deskripsi dilakukan. 3. Sistem memiliki tingkat keamanan yang tinggi dalam pemprosesan pesan. 4. Algoritma yang digunakan untuk enkripsi dan deskripsi adalah algoritma RSA. 5. Adanya fasilitas inbox dan outbox yang digunakan untuk menyimpan dan melihat data sms yang masuk dan keluar. 6. Adanya fasilitas petunjuk penggunaan teknis atau bantuan pada aplikasi, sehingga aplikasi mudah digunakan.
81
b. Nonfunctional Requirements Nonfunctional Requirements dari sistem yang dikembangkan akan dijelaskan dalam bentuk tabel berikut: Tabel 4.3 Nonfunctional Requirement Jenis Kebutuhan
Penjelasan
1. Model Tampilan (Performance)
a) Tampilan interface yang menarik dan lebih user friendly sehingga lebih mudah dimengerti dan digunakan oleh user.
2. Model Penyimpanan Data (Information)
a) Model
penyimpanan
digunakan
bukanlah
data
yang
suatu
tools
database, tetapi menggunakan tools dari J2ME yang bernama RMS, RMS merupakan suatu mekanisme yang digunakan
oleh
menyimpan data, RMS
MIDP
pada dasarnya
menyimpan
kumpulan
record
untuk
kumpulan
pada
memori
persistence. Dengan digunakannya RMS,
sehingga
aplikasi
yang
dijalankan tidak perlu mengakses dari tools database lain, sehingga
82
tidak memberatkan aplikasi yang dijalankan. 3. Model Pengontrolan Sistem (Control)
a) Meningkatkan keamanan terhadap pelaksanaan
proses
penyimpanan
akses
penggunaan
data. b) Membatasi terhadap
aplikasi
dengan
cara
menerapkan input password pada HP pengirim dan penerima . c) Mencegah kebocoran pesan kepada pihak yang tidak berwenang.
4. Model Efisiensi Sistem (Eficiency)
a) Menggunakan sistem penyimpanan data
yang
terpadu
untuk
memudahkan proses cross-checking pesan antara pengirim dan penerima. b) Mengefisienkan pelaksanaan pembacaan pesan
waktu proses
untuk validasi
83
4.2.1.3 Analisis Keputusan (Decision Analysis) Dari tahapan analisis sebelumnya telah diketahui permasalahan dari sistem berjalan dan persyaratan dan kebutuhan sistem yang diinginkan, maka fase selanjutnya adalah analisis keputusan yaitu menentukan komponen-komponen dari sistem usulan yang akan dirancang, dibangun dan diimplementasikan. Berikut merupakan komponen-komponen yang dibutuhkan: 1.
Data SMS masuk Data sms masuk tersimpan didalam inbox pada bagian ini user dapat membalas sms, mengedit sms dan menghapus sms yang masuk.
2.
Data SMS keluar Pada data sms keluar fitur yang disajikan sama dengan data sms masuk, pada bagian ini dilengkapi fasilitas membalas sms, mengedit sms dan menghapus sms yang masuk.
3.
Enkripsi dan Dekripsi data Enkripsi data dilakukan ketika pesan akan disampaikan ke HP penerima. Dekripsi data dilakukan ketika pesan diterima dari HP pengirim. Enkripsi dan dekripsi data menggunakan algoritma RSA. Algoritma RSA adalah adalah sebuah algoritma pada enkripsi public key. RSA merupakan salah satu algoritma yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang.
84
4.
Bantuan Bantuan adalah petunjuk teknis penggunaan aplikasi yang bisa dibaca oleh user yang menggunakan aplikasi. Berikut ini adalah alur kerja sistem yang diusulkan :
Gambar 4.1. Alur kerja sistem yang diusulkan
Setelah mengetahui komponen-komponen sistem yang diusulkan selanjutnya adalah menentukan jenis perangkat sistem yaitu berupa tools atau alat untuk merancang dan mengimplementasikan sistem ususlan sehingga menghasilkan
85
arsitektur sistem yang diinginkan. Dalam menentukan arsitektur sistem usulan yang terpenting adalah pemahaman terhadap jenis tools yang akan digunakan karena harus sesuai dengan kebutuhan pengguna dan fungsi-fungsi sistem yang terdapat didalamnya. Sistem usulan dirancang dengan menggunakan UML (Unified Modeling Language), dan bahasa pemograman JAVA khususnya J2ME. Sehingga konsep tentang UML dn JAVA harus benar-benar dikuasai. 4.2.2
Perancangan Aplikasi
4.2.2.1. Identifikasi Use case dan Aktor Identifikasi aktor dan use case ini didasari pada kebutuhan fungsi-fungsi sistem. Kebutuhan akan fungsi ini diakomodir di use case. Selanjutnya use case menyediakan nilai hasil kepada aktor. Atas dasar spesifikasi ini paling tidak didapat cara menetukan aktor. Berdasarkan penjelasan bab sebelumnya use case mencakup aliran-aliran kerja (workflow) dalam sistem (bersifat internal) sedangkan aktor-aktor mencakup segala sesuatu yang ada di luar sistem (bersifat eksternal). Perbedaan antara use case dan aktor yang sedang dibahas saat ini dengan use case bisnis dan pekerja bisnis dibahas secara sekilas pada tabel di bawah ini. Tabel 4.4 Perbedaan Objek-objek dalam Model Bisnis dan Model Sistem. Nama Objek Use Case
Model Bisnis
Model Sistem
Mendeskripsikan apa yang
Mendeskripsikan
dikerjakan perusahaan atau
yang
instansi.
dikembangkan
sistem
akan/sedang dalam
86
perusahaan atau instansi. Aktor
Bersifat eksternal terhadap
Bersifat eksternal terhadap
perusahan atau instansi.
sistem
yang
akan/sedang
dikembangkan Pekerja Bisnis
Bersifat
internal
dalam
Tidak digunakan
perusahaan atau instansi.
Pemodelan sistem dilakukan untuk mendeskripsikan use case apa saja dan aktor yang akan terlibat dalam analisis sistem usulan, dapat dilihat dalam tabel requirement aktor dan use case berikut ini. Tabel 4.5 Requirement Aktor dan Use case Requirement
Aktor
Use case
1. Pengirim sms dapat mengirim sms.
Pengirim
Kirim SMS
2. Pengirim dan penerima sms dapat
Pengirim dan
Inbox
melihat data sms masuk yang
penerima.
tersimpan dan juga dapat mengedit, membalas dan menghapus sms. 3. Pengirim dan penerima sms dapat melihat data sms keluar yang tersimpan dan juga dapat mengedit, membalas dan menghapus sms.
Pengirim dan penerima.
Inbox
87
4. Penerima sms dapat membaca sms
Penerima
terima SMS
yang masuk.
5. Penerima dan pengirim sms dapat membaca
petunjuk
penggunaan aplikasi.
bantuan
teknis Pengirim dan Penerima
4.2.2.2.2Use Case Diagram Use Case Diagram menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem. Use Case Diagram dapat dibuat sesuai dengan tabel Requirement Aktor dan Use Case di atas. Berikut ini adalah use case diagram untuk aplikasi enkripsi SMS.
Gambar 4.2 Use case Diagram
88
4.2.2.3 Use Case Scenario Setiap use case di atas harus di deskripsikan dalam dokumen yang disebut dokumen flow of event. Dokumentasi ini mendefinisikan apa yang harus dilakukan oleh sistem ketika aktor mengaktifkan use case. Struktur dari dokumen use case ini bisa bermacam-macam tetapi umumnya deskripsi ini paling tidak harus mengandung: 1.
Brief Description (deskripsi singkat)
2.
Aktor yang terlibat
3.
Precondition yang penting bagi use case untuk memulai
4.
Deskripsi rinci dari aliran kejadian yang mencakup a. Main flow dari kejadian yang bisa dirinci lagi menjadi sub flow dari kejadian (sub flow bisa dibagi lagi lebih jauh menjadi sub flow yang lebih kecil agar dokumen lebih mudah dibaca dan dimengerti) b. Alternative flow untuk mendefinisikan situasi perkecualian
5.
Postcondition yang menjelaskan state dari sistem setelah use case berakhir Selain beberapa hal yang disebutkan di atas, dapat juga memakai beberapa
deskripsi tambahan lainnya untuk melengkapi pendeskripsian yang dibuat. Setelah menjelaskan use case pada bahasan sebelumnya, maka berikut ini akan dijelaskan spesifikasi use case yang telah ditentukan. 1. Use case kirim SMS Tabel 4.6 Use case scenario kirim SMS Use Case Name
kirim SMS
Actor
Pengirim
89
Use
Description
case
ini
digunakan
pengirim
SMS
untuk
mengirimkan SMS. Gambar 4.2
References
Actor Action Typical Course of Events
System Response
Step 1: Actor memilih kirim
Step 2: Sistem
SMS
menampilkan form untuk
Step 3: Actor memasukan
kirim SMS.
no yang dituju ketik pesan
Step 4 : Sistem
dan memasukan password.
mengenkripsi sms dan mengirimkan pesan.
Alternative Course
Jika pesan tidak terkirim maka user harus mengulang step 1
Pre Condition
Actor belum mengirimkan sms dan password pada HP penerima.
Post Condition
SMS terkirim dan data sms terenkripsi.
2. Use case inbox Tabel 4.7 Use case scenario inbox Use Case Name
Inbox
Actor
Pengirim dan Penerima
Description
Use case ini digunakan pengirim dan penerima untuk melihat data sms yang masuk, mengedit sms, delete sms dan balas sms.
90
References
Gambar 4.2 Actor Action
Typical Course of Events
System Response
Step 1: Actor memilih menu
Step 2: Sistem
inbox
menampilkan data-data
Step 3: Actor memasukan
SMS
pilihan edit, reply atau
Step 4 : Jika actor
delete.
memilih edit maka aplikasi akan menampilkan form edit, jika memilih reply,aplikasi akan melakukan proses kirim sms, tanpa perlu memasukan nomor HP, jika actor memilih delete maka data akan terhapus.
Alternative Course
Jika pesan actor memilih reply maka akan melakukan usecase kirim SMS.
Pre Condition
Data SMS masuk ada di inbox.
Post Condition
SMS terkirim, data sms yang masuk dapat diedit dan dihapus.
91
3.
Use case outbox Tabel 4.8 Use case scenario outbox
Use Case Name
Outbox
Actor
Pengirim dan Penerima
Description
Use case ini digunakan pengirim dan penerima untuk melihat data sms yang keluar, mengedit sms, delete sms dan balas sms.
References
Gambar 4.2 Actor Action
Typical Course of Events
System Response
Step 1: Actor memilih menu
Step 2: Sistem
outbox
menampilkan data-data
Step 3: Actor memasukan
SMS
pilihan edit, reply atau
Step 4 : Jika actor
delete.
memilih edit maka aplikasi akan menampilkan form edit, jika memilih reply,aplikasi akan melakukan proses kirim sms, tanpa perlu memasukan nomor HP, jika actor memilih delete maka data akan terhapus.
92
Jika pesan actor memilih reply maka akan melakukan
Alternative Course
usecase kirim SMS. Pre Condition
Data SMS masuk ada di outbox.
Post Condition
SMS terkirim, data sms yang masuk dapat diedit dan dihapus.
4. Use case terima SMS Tabel 4.9 Use case scenario terima SMS Use Case Name
terima SMS
Actor
Penerima
Description
Use case ini digunakan penerima SMS untuk membaca SMS.
References
Gambar 4.2 Actor Action
Typical Course of Events
System Response
Step 1: Actor memilih baca
Step 2: Sistem
SMS
menampilkan form untuk
Step 3: Actor memasukan
terima SMS.
memasukan password.
Step 4 : Sistem mengdekripsi sms dan pesan ditampilkan.
Alternative Course
Jika password salah maka sms tidak akan didekripsi, dan actor harus kembali ke step 3.
Pre Condition
Actor sudah menerima SMS
93
SMS dekripsi dan dapat ditampilkan.
Post Condition
5. Use case Bantuan Tabel 4.10 Use case scenario bantuan Use Case Name
Bantuan
Actor
Pengirim dan Penerima
Description
Use case ini digunakan pengirim dan penerima SMS untuk membaca petunjuk teknis aplikasi.
References
Gambar 4.2 Actor Action
Typical Course of Events
System Response
Step 1: Actor memilih menu
Step 2: Sistem
bantuan .
menampilkan petunjuk teknis aplikasi.
Alternative Course
-
Pre Condition
Actor belum mengerti tata cara penggunaan aplikasi
Post Condition
Petunjuk teknis aplikasi dapat dibaca oleh actor.
4.2.2.4 Activity Diagram Activity diagram memodelkan alur kerja (work flow) sebuah urutan aktivitas pada suatu proses. Diagram ini sangat mirip dengan flow chart karena kita dapat memodelkan proses logika, proses bisnis dan alur kerja. Perbedaan
94
utamanya adalah flow chart dibuat untuk menggambarkan alur kerja dari sebuah sistem, sedangkan activity diagram dibuat untuk menggambarkan aktivitas aktor. Berikut akan digambarkan satu persatu activity diagram untuk masingmasing use case. 1.
Activity Diagram kirim SMS.
Gambar 4.3 Activity Diagram dari use case kirim SMS Pertama kali pengirim memilih menu kirim SMS, kemudian sistem akan menampilkan form untuk kirim SMS, pada form tersebut pengirim menginput nomor yang akan dikirim SMS, kemudian setelah menginput nomor maka pengirim mengetikan pesan yang akan disampaikan , setelah itu pengirim menginput password yang akan digunakan pada SMS tersebut, setelah itu SMS akan di enkripsi dan pesan akan dikirimkan.
95
2.
Activity Diagram Inbox
Gambar 4.4 Activity Diagram dari use case inbox Pada activity diagram ini actor memilih menu inbox, kemudian sistem akan menampilkan data sms yang masuk, kemudian actor memilih menu yang ada. Jika actor memilih untuk edit maka sistem akan menampilkan form edit, kemudian actor mengedit sms yang masuk. Jika actor memilih menu delete, maka data sms yang dipilih akan terhapus dari sistem. Jika actor memilih menu reply maka sistem akan menampilkan form untuk reply, dan kemudian actor mengisi form reply, kemudian sms di enkripsi dan sms disampaikan ke nomor tujuan.
96
3.
Activity Diagram Outbox
Gambar 4.5 Activity Diagram dari use case outbox Pada activity diagram ini actor memilih menu outbox, kemudian sistem akan menampilkan data sms yang keluar, kemudian actor memilih menu yang ada. Jika actor memilih untuk edit maka sistem akan menampilkan form edit, kemudian actor mengedit sms yang keluar. Jika actor memilih menu delete, maka data sms yang dipilih akan terhapus dari sistem. Jika actor memilih menu reply maka sistem akan menampilkan form untuk reply, dan kemudian actor mengisi form reply, kemudian sms di enkripsi dan sms disampaikan ke nomor tujuan,
97
4.
Activity Diagram Terima SMS
Gambar 4.6 Activity Diagram dari use case terima SMS
Pada activity diagram ini actor memilih menu baca sms, kemudian sistem akan menampilkan sms yang masuk, sms yang masuk masih terenkrip. kemudian actor memasukan password, Jika password yang dimasukan benar maka sistem akan mendekrip pesan SMS, dan menampilkannya ke layar penerima. Jika password yang dimasukan salah, maka actor harus memasukan password dengan benar.
98
5.
Activity Diagram Bantuan
Gambar 4.7 Activity Diagram dari use case bantuan
Pada activity diagram ini actor memilih menu bantuan, kemudian sistem akan menampilkan petunjuk teknis yang dapat dibaca untuk mengetahui tata cara penggunaan aplikasi.
4.2.2.5 Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Dibawah ini adalah sequence diagram untuk masing-masing modul.
99
1. Sequence Diagram Kirim SMS
Gambar 4.8. Sequence Diagram dari use case kirim SMS Pada sequence diagram ini pengirim memilih menu kirim SMS, kemudian sistem akan menampilkan form untuk kirim SMS, pada form tersebut pengirim menginput nomor yang akan dikirim SMS, kemudian setelah menginput nomor maka pengirim mengetikan pesan yang akan disampaikan , setelah itu memanggil class untuk enkripsi data, setelah data di enkripsi maka pesan dikirim, dan masuk ke dalam data sms keluar.
100
2. Sequence Diagram Inbox
Gambar 4.9. Sequence Diagram dari use case inbox Pada sequence diagram ini actor memilih menu inbox, kemudian memanggil modul data sms, kemudian user memilih data sms, kemudian sistem akan memanggil class menu, jika user memilih edit, maka sistem akan menampilkan class edit, kemudian user mengedit sms yang ada. Jika user memilih delete maka data akan di delete di hapus dari data sms masuk jika memilih reply maka sistem akan menampilkan form untuk kirim SMS, pada form tersebut pengirim menginput nomor yang akan dikirim
101
SMS, kemudian setelah menginput nomor maka pengirim mengetikan pesan yang akan disampaikan , setelah itu memanggil class untuk enkripsi data, setelah data di enkripsi maka pesan dikirim, dan masuk ke dalam data sms keluar. 3. Sequence Diagram Outbox
Gambar 4.10 Sequence Diagram untuk use case outbox Pada sequence diagram ini actor memilih menu outbox, kemudian memanggil modul data sms, kemudian user memilih data sms, kemudian sistem akan memanggil class menu, jika user memilih edit, maka sistem akan menampilkan class edit, kemudian user mengedit sms yang ada. Jika user memilih delete maka data akan di delete di hapus dari data sms keluar. Jika memilih reply maka sistem akan menampilkan form untuk kirim SMS, pada form tersebut pengirim menginput nomor yang akan dikirim SMS, kemudian setelah menginput nomor maka pengirim mengetikan pesan yang akan disampaikan , setelah itu memanggil class
102
untuk enkripsi data, setelah data di enkripsi maka pesan dikirim, dan masuk ke dalam data sms keluar. 4. Sequence Diagram Terima SMS
Gambar 4.11. Sequence Diagram untuk use case terima SMS Pada sequence diagram ini sistem memanggil data sms, kemudian memanggil class form sms, kemudian actor menginput password, dan akan memanggil class cek password, jika password yang dimasukan benar, maka class untuk dekripsi pesan akan di panggil dan pesan akan ditampilkan, kemudian pesan masuk ke dalam class data pesan keluar.
103
5. Sequence Diagram Bantuan
Gambar 4.12. Sequence Diagram untuk use case Bantuan Pada sequence diagram ini sistem
menu awal, kemudian
memanggil class bantuan, kemudian akan menampilkan bantuan pada user. 4.2.2.6 Class Diagram Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan.
104
Dibawah ini adalah class diagram pada aplikasi enkripsi dan deskripsi sms:
Gambar 4.13. Class Diagram
Daftar Operasi dapat dilihat pada table 4.11 dan Daftar Atribut pada Kelas Kirim SMS dapat dilihat pada tabel 4.12
105
Operasi dan Atribut 1. Kelas Kirim SMS Tabel 4.11 Daftar Operasi dari Kelas Kirim SMS Nama Operasi
Visibility
Keterangan
(Private, Public) Proses Enkripsi
Public
Untuk mengirimkan pesan dan password yang telah dienkripsi
IsValidPhone Number
Protected
Untuk memasukkan nomor telepon penerima
Tabel 4.12 Daftar Atribut dari Kelas Kirim SMS Nama Atribut
Visibility
Type
(Private, Public) Hasil Enkrip
Protected
String
HEnkrip
Private
String
Tambah Record Outbox
Public
void
Menu Proses Enkripsi
Private
void
Menu Reply SMS
Public
String
Menu Kirim SMS
Private
Void
Menu Forward SMS
public
void
106
2. Kelas Enkripsi SMS Daftar Atribut pada Kelas Enkripsi SMS dapat dilihat pada tabel 4.13 Tabel 4.13 Daftar Operasi dari Kelas Enkripsi SMS Nama Atribut
Visibility
Type
(Private, Public) Status
Protected
String
Menu Reply SMS
Public
Void
Menu Kirim SMS
Private
Void
Command Action
public
Void
Hitung Enkripsi
Public
String
3. Kelas Receive SMS Daftar Operasi dapat dilihat pada table 4.14 dan Daftar Atribut pada Kelas Receive SMS dapat dilihat pada tabel 4.15 Tabel 4.14 Daftar Operasi dari Kelas Receive SMS Nama Operasi
Visibility
Keterangan
(Private, Public) Proses Dekripsi
Public
Untuk menghitung hasil dekrip dari SMS yang telah dienkrip
107
Tabel 4.15 Daftar Atribut dari Kelas Receive SMS Nama Atribut
Visibility
Type
(Private, Public) txtPengirim
private
String
Plaintext
private
String
PK
private
Int
txtPesan
private
String
Status
protected
String
txtTujuan
private
String
SK
private
Int
HasilDekrip
private
String
Plaintext2
private
String
Port
protected
String
menuSMS
private
Void
Pangkat
private
Void
menuProsesDekripsi
private
Void
Hitung Dekripsi
Public
String
Dekrip
private
Int
Data2753
private
Int
108
4. Kelas Outbox Daftar Atribut pada Kelas Kirim SMS dapat dilihat pada tabel 4.16
Tabel 4.16 Daftar Atribut dari Kelas Outbox Nama Atribut
Visibility
Type
(Private, Public) cariRecordOutbox
public
Void
deleteOutbox
public
Void
detailoutbox
Public
Void
menuForward
Public
Void
menuOutbox
Public
Void
Menu SMS
Public
Void
TambahRecordOutbox
public
Void
5. Kelas Inbox Daftar Atribut pada Kelas Kirim SMS dapat dilihat pada tabel 4.17 Tabel 4.17 Daftar Atribut dari Kelas Inbox Nama Atribut
Visibility
Type
(Private, Public) noPengirim
protected
String
txtPesan
protected
String
Menu kirim SMS
Private
Void
menuInbox
Public
Void
Delete Inbox
Public
Void
109
Detail Inbox
Public
String
Cari Record
public
Void
4.2.2.7. Spesifikasi Proses yang Diusulkan Pada bagian ini akan dibahas mengenai proses perancangan sistem program, pengimplementasian kriptografi dalam proses pengambilan data SMS dengan mempertimbangkan berbagai faktor dan kebutuhan, seperti yang telah ditetapkan pada tahap analisis sistem. 4.2.2.7.1 Rancangan Pembangkitan Kunci Seperti yang telah di jelaskan pada bagian analisis sistem, program sistem keamanan ini akan dibuat dengan menggunakan Kriptografi RSA. RSA merupakan sebuah algoritma pada enkripsi public key. RSA merupakan salah satu algoritma yang paling maju dalam bidang kriptografi public key dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang. Modul-modul proses yang terdapat dalam algoritma RSA adalah sebagai berikut:
Gambar 4.14 Tahapan algoritma RSA
110
Dari modul diatas dapat dijelaskan sebagai berikut: a. Algoritma Proses Pembangkitan Kunci 1. Tentukan bilangan prima p dan q 2. if p = “prima“ and q = “prima” then 3. Hitung r ← p * q 4. Hitung (r) ← (p – 1)(q – 1) 5. Pilih PK 5.1
While PK relative prima dgn (r) dan PK < (r)
5.2
PiliH PK
4.3 END WHILE 5. Hitung SK 6. SELESAI Keterangan dari algoritma diatas adalah sebagai berikut: Tentukan bilangan prima secara acak p dan q, setalah itu lakukan proses perhitungan p * q untuk menghasilkan nilai r sebagai modulus. Lakukan proses perhitungan (p-1)(q-1) untuk menghasilkan nilai (r)yang digunakan untuk mencari nilai SK (Secret Key). Pilih bilangan bulat PK (Public Key), dan selama PK adalah bilangan pembagi terbesar dan lebih kecil dari (r), lakukan proses untuk mencari nilai SK. Berikut ini adalah flow chart pembangkitan kunci algoritma RSA.
111
Gambar 4.15 Flow Chart Algoritma Pembangkit Kunci RSA b. Algoritma Penentuan Bilangan p dan q Prima 1. Mulai 3. For i=1, i<=100, i++ 3.1 if i = 1 Cetak “prima” 3.2 else if i = 2 Cetak “prima” 3.3 else if(i mod 2 != 0 and i mod 3 != 0) cetak “prima”
112
3.4 else cetak “bukan Prima” 4. END FOR 5. Selesai c. Algoritma Proses Enkripsi 1. Ambil nilai r dan PK 2. Ambil data SMS 3. Konversi data ke ASCII ($dataQ=ord($berita)) 4. Transformasikan dataQ -> xi 4.1
while xi>r-1
4.2 xi dibagi menjadi blok-blok 4.3 end while 5. Proses enkripsi 6. Chipertext (yi) 7. Satukan yi menjadi satu blok 8. transformasi yi -> dataQ 9. selesai Keterangan dari algoritma diatas adalah sebagai berikut: Mengambil nilai r dan PK dari hasil proses perhitungan pembangkitan kunci, pilih data SMS mahasiswa yang akan di ambil sebagai $berita, konversikan data ke dalam ascii, transformasikan data menjadi xi, selama xi > 1 bagi xi menjadi blok-blok, lalu proses enkripsi dilakukan.
113
Berikut ini adalah flow chart algoritma enkripsi RSA.
Gambar 4.16 Flow chart proses enkripsi algoritma RSA
114
d. Algoritma Proses Dekripsi 1. Ambil nilai r dan SK 2. Ambil dataQ 3. Transformasikan dataQ -> yi 1.1
while yi>r-1
1.2
yi dibagi menjadi blok-blok
1.3
end while
4. Proses dekripsi 5. Plaintext (xi) 6. Satukan xi menjadi satu blok 7. transformasi xi -> dataQ 8. $berita = konversi dataQ ke text 9. Plaintext (data SMS) 10. selesai Keterangan dari algoritma diatas adalah sebagai berikut : Mengambil nilai r dan SK dari hasil proses enkripsi dan pembangkitan
kunci,
ambil
dataQ
yang
telah
dienkripsi,
transformasikan dataQ menjadi yi, selama yi > 1 bagi yi menjadi blokblok, lalu proses dekripsi dilakukan. Didapat plaintext (xi), satukan blok xi, transformasikan xi menjadi dataQ, konversi dataQ menjadi text, didapat berita(data SMS). Berikut ini adalah flow chart algoritma dekrip RSA.
115
Gambar 4.17 Flow chart proses dekrip algoritma RSA
116
Dari proses diatas akan diimplemantasikan dalam suatu proses pengambilan SMS dan langkah-langkah mengimplementasikan Algoritma kriptografi tersebut dalam suatu bahasa pemrograman berbasis JAVA. 4.2.2.7.2. Contoh Kasus RSA a. Pembangkitan Kunci 1. Pilih bilangan p dan q : p = 47 dan q = 71 (keduanya prima) 2. Selanjutnya, hitung nilai r = p q = 3337 dan (r)= (p – 1)(q – 1) = 3220. 3. Pilih kunci publik PK = 79, karena 79 relatif prima dengan 3220. PK dan r dapat dipublikasikan ke umum. 4. Selanjutnya akan dihitung kunci dekripsi SK dengan menggunakan persamaan : SK
1 ( m 3220 ) 79
Dengan mencoba nilai-nilai m = 1, 2, 3, …, diperoleh nilai SK yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan. b. Proses Enkripsi Perhitungan dengan manual Plainteks yang dienkripsikan yaitu: Enkripsi Data SMS Ubah ke kode ASCII X = 69110107114105112115105326897116973283778332 Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit:
117
x1=691
x9=268
x2= 101
x10=971
x3=071
x11=169
x4=141
x12=732
x5=051
x13=837
x6=121
x14=783
x7=151
x15=032
x8=053 Ket : jika pada digit terakhir sisa 1 angka maka didepan angka tersebut ditambah 00, dan jika sisa 2 digit angka maka didepan angka tersebut ditambah 0. Blok-blok plainteks dienkripsikan dengan rumus : xi PK mod r Ket : PK = 79, r = 3337 Untuk menghitung secara manual, langkah-langkahnya sebagai berikut: 1. Ubah PK 79 menjadi bilangan biner: 10011111 79 = 1001111 = 1+2^1+2^2+2^3+2^6 = 1+2+4+8+64 2. Hitung X1 sampai X15
X1 = 691 (mod 3337) 691^1= 691 (mod 3337) 691^2 (mod 3337) = 290 (mod 3337)
118
691^4 (mod 3337) = 290^2 (mod 3337) = 675 (mod 3337) 691^8 (mod 3337) = 675^2 (mod 3337) = 1793 (mod 3337) 691^16 (mod 3337) = 1793^2 (mod 3337) = 1318 (mod 3337) 691^32 (mod 3337) = 1318^2 (mod 3337) = 1884 (mod 3337) 691^64 (mod 3337) = 1884^2 (mod 3337) = 2225 (mod 3337) Dari perhitungan diaas, maka diketahui: 691^79 (mod 3337) = 691 ^ (1+2+4+8+64) (mod 3337) = 691^1 *691^2 *691^4 *691^8 *691^64 (mod 3337) = 691 * 290 *675 *1793 *2225 (mod 3337) = 170 * 675 *1793 * 2225 (mod 3337) = 1292 * 1793 * 2225 (mod 3337) = 678 *2225 (mod 3337) = 226 (mod 3337) = 226 = y0
X2 = 101 (mod 3337)
101^1= 101 (mod 3337) 101^2 (mod 3337) = 190 (mod 3337) 101^4 (mod 3337) = 190^2 (mod 3337) = 2730 (mod 3337) 101^8 (mod 3337) = 2730^2 (mod 3337) = 1379 (mod 3337) 101^16 (mod 3337) = 1379 ^2 (mod 3337) = 2888 (mod 3337) 101^32 (mod 3337) = 2888^2 (mod 3337) = 1381 (mod 3337)
119
101^32 (mod 3337) = 1381^2 (mod 3337) = 1734 (mod 3337) Dari perhitungan diatas, maka diketahui: 101^79 (mod 3337) = 101 ^ (1+2+4+8+64) (mod 3337) = 101^1 *101^2 *101^4 *101^8 *101^64 (mod 3337) = 101 * 190 *2730 *1379 *1734 (mod 3337) = 2505* 2730 *1379 * 1734 (mod 3337) = 1137 *1379 * 1734 (mod 3337) = 2870 * 1734 (mod 3337) = 1113 (mod 3337) = 1113 = y2
Selanjutnya lakukan perhitungan X3 smapai X14 seperti cara yang diatas, maka hasilnya menjadi: 69179 mod 3337 = 226= y1 10179 mod 3337 = 1113= y2 07179 mod 3337 = 1988= y3 14179 mod 3337 = 141= y4 05179 mod 3337 = 523= y5 12179 mod 3337 = 2798= y6 15179 mod 3337 = 966= y7 05379 mod 3337 = 65= y8 26879 mod 3337 = 2341= y9
120
97179 mod 3337 = 387= y10 16979 mod 3337 = 333= y11 73279 mod 3337 = 1341= y12 83779 mod 3337 = 792= y13 78379 mod 3337 = 2784= y14 03279 mod 3337 = 1379= y15 Jadi, cipherteks yang dihasilkan adalah Y=226111319881415232798966652341387333134179227841379 22== 61=== 11== 31== 98==b 81==Q 41==) 52==4 32== 79==O 89==Y 66==B 65==A 23== 41==)
121
38==& 73==I 33==! 13== 41==) 79==O 22== 78==N 41==) 37==% 9== hasil chipertext= =bQ)4OYBA)&I!)ON)% chipertext di ubah ke ascii= 226111319881415232798966652341387333134179227841379 c. Proses Dekripsi Dekripsi dilakukan dengan menggunakan rumus yi SK mod r Keterangan : SK = 1019, r = 3337 Blok-blok cipherteks didekripsikan sebagai berikut: 2261019 mod 3337 = 691= X1 1113 1019 mod 3337 = 101= X2 1988 1019 mod 3337 =071 = X3
122
1411019 mod 3337 = 141= X4 5231019 mod 3337 = 051= X5 2798 1019 mod 3337 = 121= X6 9661019 mod 3337 = 151= X7 65 1019 mod 3337 = 053= X8 2341 1019 mod 3337 = 268= X9 3871019 mod 3337 = 971= X10 3331019 mod 3337 = 169= X11 1341 1019 mod 3337 = 732= X12 792019 mod 3337 = 837= X13 2784 1019 mod 3337 = 783= X14 1379 1019 mod 3337 = 32= X14
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula. X = 69110107114105112115105326897116973283778332 yang dalam karakter ASCII adalah X = Enkripsi Data SMS
123
4.2.2.8 Perancangan User Interface Gambar 4.18 Perancangan Tampilan Awal Aplikasi
Gambar 4.19 Perancangan Menu Utama
124
Gambar 4.20 Perancangan Tampilan Kirim SMS
Gambar 4.21 Perancangan Tampilan Terima SMS
125
Gambar 4.22 Perancangan Tampilan Inbox
Gambar 4.23 Perancangan Tampilan Outbox
126
Gambar 4.24 Perancangan Bantuan
Gambar 4.25 Perancangan Profile
127
4.3 Construction Construction merupakan lanjutan dari tahap elaboration. Setelah Desain selesai di tahap elaboration, maka di tahap ini melanjutkan membuat coding lalu mengimplementasikan. Implementasi system yang dibuat ini dilakukan dengan mengadakan pengujian atau testing, guna mengetahui layak atau tidaknya suatu program. 4.3.1 Implementasi Sistem Implementasi yang dilakukan menggunakan sebuah perangkat computer untuk membangun perangkat lunak dan sebuah telepon selluler yang digunakan untuk melakukan uji coba perangkat yang telah dibangun. Perangkat yang digunakan untuk implementasi memiliki spesifikasi sebagai berikut: 1. Processor Dual Core 2. Ram 2 GB 3. Hard Disk 120 GB Adapun perangkat lunak yang digunakan untuk membangun aplikasi ini adalah : 1. Sistem Operasi Windows XP 2 2. JCreator 3. Sun Java Wireless Toolkit 2.5.2 Perangkat
lunak
yang
dibangun
menggunakan
bahasa
pemrograman Java dengan teknologi J2ME. Hasil implementasi diujika pada Samsung C6225.
128
Spesifikasi teknik untuk perangkat lunak pada telepon selluler Samsung C6225 yaitu: 1. Sistem Operasi Windows 2. Java Environment : MIDP 2.0, dan CLDC 1.0. Batasan dalam implementasi ini adalah sebagai berikut : 1. Perangkat lunak tidak dapat melakukan akses ke memory ke dalam kartu SIM. 2. Perangkat lunak yang dibangun dapat dijalankan pada telepon selluler yang mendukung aplikasi berbasis Java dengan spesifikasi minimal MIDP 2.0 dan CLDC 1.0 menggunakan Kartu GSM. 4.3.1.1 Coding Aplikasi Dalam fase konstruksi, bahasa yang digunakan adalah Java dengan menggunakan J2ME. Java yang digunakan adalah JDK versi 1.6, aplikasi ini menggunakan RMS, yang digunakan sebagai tempat penyimpanan data. JDK versi 1.6 digunakan untuk menjalankan sistem dan mengeksekusi rule – rule yang menggunakan bahasa pemograman Java. Editor yang digunakan dalam aplikasi ini adalah JCREATOR LE, J Creator adalah salah satu editor java yang murni menggunakan pengkodingan. Untuk menjalankan aplikasi digunakan J2ME wirelless toolkit, merupakan simulator yang menjalankan program J2ME. Source code lengkap ada di bagian lampiran.
129
4.3.1.2 Testing a.
Pengujian Program Pada tahapan pengujian aplikasi, pengujian dilakukan dengan cara
blackbox
testing oleh penulis.
Cara pengujian dilakukan dengan
menjalankan aplikasi enkripsi dan melakukan input data serta melihat inputnya apakah sesuai dengan domain masalah serta kesimpulan yang diharapkan. Hasil pengujian blackbox testing disajikan dalam tabel di bawah ini: Tabel 4.18 Hasil Pengujian Program No
Field
Keterangan
Hasil
1
Kirim SMS
Pengirim sms dapat mengirim sms
Sesuai
2
Edit Inbox
Data sms ada di inbox, jika berhasil maka
Sesuai
akan tampil form untuk edit dan sms dapat disimpan. 3
Delete Inbox
Data sms ada di inbox, jika berhasil maka
Sesuai
data akan dihapus dari data sms 4.
Reply Inbox
Data sms ada di inbox, jika berhasil maka
Sesuai
akan tampil form untuk reply dan sms dapat disimpan. 5
Edit Outbox
Data sms ada di Outbox, jika berhasil
Sesuai
maka akan tampil form untuk edit dan sms dapat disimpan. 6
Delete Outbox
Data sms ada di outbox, jika berhasil maka
Sesuai
130
Sesuai 7 8 9
Reply Outbox
data akan dihapus dari data sms
Terima SMS
Data sms ada di inbox, jika berhasil maka Sesuai
Cek Password
akan tampil form untuk reply dan sms Sesuai
SMS
dapat disimpan. SMS masuk dari hape pengirim.
10
Enkripsi SMS
Memasukan password untuk mendekrip
Sesuai
12
Dekripsi SMS
SMS, jika password benar maka SMS
Sesuai
akan terdekrip. SMS terenkripsi SMS terdekripsi
b. Pengujian Perhitungannya Pada tahapan pengujian aplikasi, pengujian juga dilakukan dengan cara blackbox testing oleh user, user ini adalah para pengguna teknologi SMS. Cara pengujian dilakukan dengan menjalankan aplikasi enkripsi dan melakukan input data serta melihat input-nya apakah sesuai dengan domain masalah serta kesimpulan yang diharapkan. Berikut ini adalah kesimpulan hasil pengujian blackbox testing disajikan dalam tabel di bawah ini: Tabel 4.19 Kesimpulan Hasil Pengujian 1 No
Pengujian
Plaintext
JumChar
P,q
Chipertext
JumChar
131
Plainteks 1
Pengujian 1
Enkripsi Data SMS
18
Chipertext 47,71
= bQ)4 OYBA)&I! )ON)%
Proses pengiriman SMS
Gambar 4.26 Proses Pengiriman SMS di Pengujian 1
20
132
Proses Penerimaan SMS di handphone
penerima
Gambar 4.27 Proses Penerimaan SMS di Pengujian 1 Tabel 4.20 Kesimpulan Hasil Pengujian 2 No
Pengujian
Plaintext
JumChar
P,q
Chipertext
Plainteks 1
Pengujian 2
UIN Jakarta
11
JumChar Chipertext
43,73
T\U>%+W !
8
133
Proses Pengiriman SMS di HP Pengirim Gambar 4.28 Proses Pengiriman SMS di Pengujian 2 Proses Penerimaan SMS di HP Penerima
134
Gambar 4.29 Proses Penerimaan SMS di Pengujian 2 Tabel 4.21 Kesimpulan Hasil Pengujian 3 No
Pengujian
Plaintext
JumChar
P,q
Chipertext
Plainteks 1
Pengujian 3
Implementasi Kriptografi
24
JumChar Chipertext
41,79
@83F7AA
19
[;H;#9[F=J #4
Proses Pengiriman SMS di Hp Pengirim
Gambar 4.30 Proses Pengiriman SMS di Pengujian 3
135
Proses Penerimaan SMS di HP Penerima Gambar 4.31 Proses Penerimaan SMS di Pengujian 3
4.4 Transition 4.4.1 User Manual User manual adalah tata cara penggunaan aplikasi ini. User manual ini akan dijelaskan lebih lanjut didalam lampiran.
136
BAB V PENUTUP 5.1 Kesimpulan Kesimpulan yang dapat diambil oleh penulis dalam tugas akhir ini adalah : 1. Untuk mengimplementasikan RSA ini dapat dilihat dengan jelas pada 4.3.1 dihalaman 127 2. Untuk mengetahui keberhasilan RSA melakukan penyandian SMS, penulis mengujinya sebanyak 3 kali dengan menggunakan plaintext yang merupakan bagian kata dari SMS tersebut, dan dengan p dan q yang berbeda-beda (diinput secara manual). Dari hasil pengujian tersebut didapat chipertext yang berbeda-beda, dapat dilihat pada tabel 4.19 (hasil enkripsi). Hasil pengujian menghasilkan, bahwa data SMS yang sama bila terenkripsi akan mengeluarkan output karakter chipertext yang berbedabeda disebabkan oleh variable p dan q yang berubah-ubah. (hasil dekripsi). Dapat dilihat pada tabel 4.19 dihalaman 130, tabel 4.20 dihalaman 132 dan tabel 4.21 dihalaman 134. 3. Diaplikasi ini penulis menambahkan program sistem keamanan yang dibuat memberikan pengamanan dari segi pengaksesan dan melakukan penyandian data SMS dengan menggunakan password. Dengan kata lain, apabila password yang kita masukkan salah saat menerima pesan, maka hasil dekrip tidak dapat dijalankan.
136
137
5.2 SARAN Saran penulis untuk pengembangan program sistem keamanan ini mendatang adalah : 1. Mengimplementasikan RSA tidak hanya untuk menyandikan data saja, tetapi bisa diimplementasikan untuk digital signatur atau menyandikan gambar. 2. Untuk meningkatkan keamanan pesan sebaiknya dikombinasikan dengan algoritma tanda tangan digital, sehingga walaupun pesan tidak terenkripsi, jika mengalami perubahan dapat dideteksi oleh aplikasi. 3. Untuk pengembangan berikutnya sebaiknya dicarikan solusi agar setiap kita mengirimkan pesan tidak harus memakai password, dengan kata lain password tersebut sudah masuk ke dalam programnya. 4. Diharapkan aplikasi ini dapat diterapkan disalah satu vendor-vendor ponsel sehingga dapat terinstall pada setiap ponsel yang dijual dipasaran.
138
DAFTAR PUSTAKA Ariyus, Dony. 2008. Kriptografi keamanan data dan komunikasi. Yogyakarta : Graha Ilmu. Dharwiyanti, Sri, 2003. Pengantar Unified Modelling Language (UML). Ilmu Komputer
Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Object. Yogyakarta: Graha Ilmu. Munir, Rinaldi. 2005. Kriptografi. Bandung : Informatika. Munansyah, Ahmad. 2007. Rational Unfied Process. Bandung: STMIK LIKMI Bandung. Rahayu, Flourensia Sapty. 2005. Criphtography. Jakarta : Universitas Indonesia. Sukirman. 2004. Teori Bilangan. Jakarta : Universitas Terbuka. Simarmata, Janner. 2006. Pengamanan Sistem Komputer. Yogyakarta: Andi Offset. Sofwan, Agus, dkk. 2006. Aplikasi Kriptografi dengan Message Digest 5. Semarang. Universitas Diponegoro. Susanto, Erwan. 2009. Perancangan aplikasi enkripsi dan dekripsi data. Jakarta : Teknik Informatika. Sholahuddin, Rosa. 2010. Pemrograman J2ME: Belajar Cepat Pemrograman Perangkat Telekomunikasi Mobile,Bandung: Informatika Bandung. http :// id.wikipedia.org/RSA Wiki ( diakses 28 Oktober 2010 ) (http://asep-hs.web.ugm.ac.id/Artikel/MODUL PEMROGRAMAN JAVA/MODUL FINAL/BAB I PENDAHULUAN.pdf, 26 Oktober 2010 ,9:42 PM) http://diannurdiana.blog.upi.edu/files/2009/10/David-Sudana.wordpress.pdf (diakses pada tanggal 2 November 2010) Attaya, kpk menyadap telepon, http://www.attayaya.net/2009/04/kpk-menyadaptelepon.html (diakses pada tanggal 18 Desember 2010)
Wireless Short Messaging Service Tutorial. 1999. Shelton: ADC NewNet, Inc. www.mobilein.com/SMS_tutorial.pdf diakses pada 22 November 2010.
138
Copyright © Wondershare Software
• Mengembangkan aplikasi enkripsi SMS yang lebih aman dibanding sistem sebelumnya. • Mencoba mengimplemantasikan kriptografi RSA untuk enkripsi SMS dalam telepon selluler
Copyright © Wondershare Software
•Mengimpelementasikan algortima kriptografi •Menyandikan SMS menggunakan algoritma RSA •Memperbaiki aplikasi enkripsi sms yang telah ada dengan menggunakan algortima RSA •Penerapan dan kesesuaian terhadap teori RSA dalam penggunaannya.
Copyright © Wondershare Software
Bagaimana mengimplementasikan suatu metode kriptografi. Bagaimana membuat suatu aplikasi enkripsi SMS dengan metode RSA Bagaimana penyandian asimetris.
Algoritma RSA melakukan dengan menggunakan kunci
Bagaimana mengamati hasil pengujian Copyright © dihasilkan Wondershare Software pengiriman chipertext yang
No
JUDUL
KELEBIHAN
Aplikasi Enkripsi SMS berbasis J2ME menggunakan 1. Vigenere Cipher Oleh Ahmad Faqih, tahun 2005.
Algortima
KEKURANGAN
ini
dikenal karena
sangat 1.
Tingkat keamananannya
mudah
dibandingkan
dipelajari
dan
diimplementasikan.
dengan
RSA lebih lemah, karena algoritma diserang
ini oleh
dapat metode
kasisi. Cara kerja Metode Vigenere Cipher ini yaitu setiap ciphertext selalu menggantikan nilai dari setiap plaintext tertentu, misalkan menukar nukar angka menjadi huruf dan sebaliknya.
Copyright © Wondershare Software
No
JUDUL
KELEBIHAN
KEKURANGAN
2
Elliptic Curve Digital Signature Algorithm (ECDSA) 1.
Algoritma
Departemen
memiliki panjang kunci yang
memiliki dua buah bidang
lebih pendek yaitu 260 bit
terbatas yaitu Fp dan F2 m,
dibandingkan dengan RSA
dan yang diimplementasikan
yang
adalah
Teknik
Informatika
ITB
oleh
Andy
Triwinarko.
Kurva
Eliptik 1.
mempunyai panjang
kurva
bidang
eliptik
terbatas
kunci 2024 bit, sehingga
Fp,sehingga
memudahkan
kurang dapat dibuktikan.
programmer
dalam
menghitung
public
maupun
keakuratannya
kunci 2.
Karena
kunci
penghitungannya
privatnya. 2.
Kriptografi
mudah
memudahkan
dalam sehingga
pihak
lain
Algoritma
Kriptografi
untuk
menghack
program
Eliptik
mempunyai
yang
dibuat
dengan
performance yang jauh lebih
kriptografi ini.
baik dibandingkan RSA.
Copyright © Wondershare Software
No
JUDUL
KELEBIHAN
KEKURANGAN
3
Implementasi Algoritma RC4 untuk enkripsi SMS pada Algoritma ini sangat sederhana 1.
Pesan
telepon seluler oleh Abdul Malik, tahun 2003.
besar,
dan mudah diimplementasikan.
dapat
bertambah
karena setiap kali
mengirimkan SMS. Nomor port akan dikirim bersama dengan SMS dank arena pesan akan diubah ke dalam format
hexadecimal
menyebabkan
yang pesan
memiliki besar 2x lipat dari pesan aslinya. 2.
Waktu
yang
dibutuhkan
untuk
mengenkripsi
SMS
atau
mendeskripsi
akan
bertambah besar jika jumlah rotasi yang digunakan
Copyright © Wondershare Software
• layanan dasar telekomunikasi seluler, yang tersedia baik di jaringan GSM maupun CDMA • Komponen GSM: - Mobile Station - ESME (External Short Messaging Entities) - BS (Base Station) - MSC (Mobile Service Switching Centre) - HLR (Home Local Register) - VLR (Visitor location Register) - SMSC (Short Message Service Centre) Copyright © Wondershare Software
• Kriptografi
crypto: rahasia Graphia : tulisan
Fungsi: 1. Enkipsi: pesan asli kode aneh 2. Dekripsi : kebalikan dari enkripsi 3. Kunci : private key dan public key
Copyright © Wondershare Software
Kriptografi: 1.Kriptografi Klasik; Teknik Substitusi; Kode Kaisar, Kode Vigenere, Kode geser Teknik Transposisi; permutasi
Copyright © Wondershare Software
2. Kriptografi Modern; menggunakan komputer untuk pengoperasiannya. • Berdasarkan kunci : 1. Algoritma Simetri; kunci enkripsi dan dekripsi sama ex: DES, RC4,RC5,AES 2. Algortima Asimetri; kunci enkripsi dan dekripsi berbeda. Ex: DSA, RSA, ECC dan Quantum. 3. Hash Function, untuk sidik jari Copyright © Wondershare Software
Kriptografi RSA->Peneliti MIT; Ron (R)ivest, Adi (S)hamir, Leonard (A)dleman tahun1976. •algortima kunci publik paling populer dan aman. •Memfaktorkan 2 bilangan prima acak yang besar.
Copyright © Wondershare Software
Copyright © Wondershare Software
• Java 2Micro Edition (J2ME) yaitu lingkungan pengembangannya didesain untuk meletakkan perangkat Java pada barang elektronik beserta perangkat pendukungnya. Arsitektur J2ME: Profile Kumpulan Library
Configuration
JVM
Sistem Operasi
Copyright © Wondershare Software
• Configuration;Java library minimum dan kapabilitas yang dipunya oleh pengembang J2ME J2SE
CDC
CLDC
CLDC (Connected Limited Device Configuration) untuk perangkat kecil CDC (Connected Device Configuartion) untuk perangkat yang lebih besar. Copyright © Wondershare Software
• Profilesesuatu yang spesifikasi untuk sebuah perangkat MIDP (Mobile Information Device Profile) • JVM (Java Virtual Machine) - kvm adalah paket JVM yang didesain untuk perangkat kecil
Copyright © Wondershare Software
• Hp yang cocok untuk Aplikasi ini: 1. MIDP 2.0 2. CLDC 1.0 3. WMA 1.1 Ex: samsung C6225, Nokia 3230, Nokia 6670, Nokia 7610, Nokia 6620, Sony Ericsson K310, Sony Ericsson K320, Sony Ericsson K610, Samsung SGH-E330, SamsungSGHE630,Samsung SGH-E800 Copyright © Wondershare Software
• UML; bahasa grafis untuk mendokumentasikan, membangun sistem perangkat lunak. - Diagram Usecase; hub kasus fungsional dan aktor - Diagram Sequence: interaksi antar objek - Diagram Activity : aliran aktivitas di sistem.
Copyright © Wondershare Software
• metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Alasan: - Improve productivity - Lower maintenance cost - Facilitate reuse - konsep object oriented Copyright © Wondershare Software
Rational Unified Process
Inception
Elaboration
Construction
Transition
Copyright © Wondershare Software
1. Menentukan Ruang Lingkup Proyek - Hanya sebatas pada Aplikasi SMS 2. Berkomunikasi dengan user - Wawancara
BACK Copyright © Wondershare Software
1. Analisis • Analisa Masalah Cause and Effect Analysis System Improvement Objectives. • Analisa Persyaratan Functional Requirement Nonfunctional Requirement • Analisa Keputusan, menentukan komponen yang dirancang. Data SMS Masuk, Data SMS Keluar, Enkripsi dan Dekripsi Data dan Bantuan
Copyright © Wondershare Software
Copyright © Wondershare Software
Copyright © Wondershare Software
2. Desain 1. Aktor 2. Use Case Diagram 3. Use Case Scenario Diagram 4. Use Case Activity Diagram 5. Use Case Sequence Diagram 6. Spesifikasi Sistem yang diusulkan
Copyright © Wondershare Software
BACK Copyright © Wondershare Software
BACK Copyright © Wondershare Software
Use Case Name
kirim SMS
Actor
Pengirim
Description
Use case ini digunakan pengirim SMS untuk mengirimkan SMS.
References
Gambar 4.2
Typical Course of Events
Actor Action
System Response
Step 1: Actor memilih kirim SMS
Step 2: Sistem menampilkan form untuk kirim SMS.
Step 3: Actor memasukan no yang dituju ketik pesan dan memasukan password.
Step 4 : Sistem mengenkripsi sms dan mengirimkan pesan.
Alternative Course
Jika pesan tidak terkirim maka user harus mengulang step 1
Pre Condition
Actor belum mengirimkan sms dan password pada HP penerima.
Post Condition
SMS terkirim dan data sms terenkripsi.
Copyright © Wondershare Software
Use Case Name
Inbox
Actor
Pengirim dan Penerima
Description
Use case ini digunakan pengirim dan penerima untuk melihat data sms yang masuk, mengedit sms, delete sms dan balas sms.
References
Gambar 4.2
Typical Course of Events
Actor Action
System Response
Step 1: Actor memilih menu inbox
Step 2: Sistem menampilkan data-data SMS
Step 3: Actor memasukan pilihan edit, reply atau delete.
Step 4 : Jika actor memilih edit maka aplikasi akan menampilkan form edit, jika memilih reply,aplikasi akan melakukan proses kirim sms, tanpa perlu memasukan nomor HP, jika actor memilih delete maka data akan terhapus.
Alternative Course
Jika pesan actor memilih reply maka akan melakukan usecase kirim SMS.
Pre Condition
Data SMS masuk ada di inbox.
Post Condition
SMS terkirim, data sms yang masuk dapat diedit dan dihapus.
Copyright © Wondershare Software
Copyright © Wondershare Software
Copyright © Wondershare Software
Use Case Name
Bantuan
Actor
Pengirim dan Penerima
Description
Use case ini digunakan pengirim dan penerima SMS untuk membaca petunjuk teknis aplikasi.
References
Gambar 4.2 Actor Action
Typical Course of Events
System Response
Step 1: Actor memilih menu bantuan .
Step 2: Sistem menampilkan petunjuk teknis aplikasi.
Alternative Course Pre Condition
Actor belum mengerti tata cara penggunaan aplikasi
Post Condition
Petunjuk teknis aplikasi dapat dibaca oleh actor.
BACK Copyright © Wondershare Software
Kirim SMS
Inbox
Copyright © Wondershare Software
Outbox
Terima SMS
Copyright © Wondershare Software
Bantuan
BACK Copyright © Wondershare Software
Kirim SMS
Inbox
Copyright © Wondershare Software
Outbox
Terima SMS
Copyright © Wondershare Software
BACK Copyright © Wondershare Software
- Pilih p dan q. - Hitung r = p q. Sebaiknya pq - Hitung (r) = (p – 1)(q – 1). - Pilih kunci publik, PK, yang relatif prima terhadap (r) - Hitung SK , SK = 1 + m (r) PK
yi = xi PK mod r
Gambar 2 Tahapan alg. RSA
xi = yi SK mod r
Copyright © Wondershare Software
Coding Testing/ Pengujian
Copyright © Wondershare Software
1. Uji coba Penyandian data dengan RSA (Rivest Shamir Adleman). NO
Pengujian
Plaintext
jumChar
p,q
Chipertext
plaintext 1
Pengujian1
Enkripsi Data SMS
18
jumChar chipertext
47,71
20
= bQ)4 OYBA)&I! )ON)%
2
Pengujian 2
UIN Jakarta
3
Pengujian4
Jurusan
142
53,103
7
53,103
ZE'9D3+` EZ .c K spasi spasi / 5 , 5 4 2
14 11
Copyright © Wondershare Software
• p = 47 dan q = 71 (keduanya prima) • r = p q = 3337 dan (r)= (p – 1)(q – 1) = 3220. • PK = 79, karena 79 relatif prima dengan 3220. • Selanjutnya akan dihitung kunci dekripsi SK dengan menggunakan persamaan : SK 1 (m 3220) 79 • Dengan mencoba nilai-nilai m = 1, 2, 3, …, diperoleh nilai SK yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.
Copyright © Wondershare Software
Misal: Plainteks: Enkripsi Data SMS • Ubah ke kode ASCII • X = 69110107114105112115105326897116973283778332 • Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit: x1=691 x9=268 x2= 101 x10=971 x3=071 x11=169 x4=141 x12=732 x5=051 x13=837 x6=121 x14=783 x7=151 x15=032 x8=053 •
xi PK mod r Ket : PK = 79, r = 3337
Copyright © Wondershare Software
•
Perhitungan Manual Ubah PK 79 menjadi bilangan biner: 10011111 79 = 1001111 = 1+2^1+2^2+2^3+2^6 = 1+2+4+8+64 Hitung X1 sampai X15 X1 = 691 (mod 3337) 691^1= 691 (mod 3337) 691^2 (mod 3337) = 290 (mod 3337) 691^4 (mod 3337) = 290^2 (mod 3337) = 675 (mod 3337) 691^8 (mod 3337) = 675^2 (mod 3337) = 1793 (mod 3337) 691^16 (mod 3337) = 1793^2 (mod 3337) = 1318 (mod 3337) 691^32 (mod 3337) = 1318^2 (mod 3337) = 1884 (mod 3337) 691^64 (mod 3337) = 1884^2 (mod 3337) = 2225 (mod 3337)
Copyright © Wondershare Software
Dari perhitungan diaas, maka diketahui: 691^79 (mod 3337) = 691 ^ (1+2+4+8+64) (mod 3337) = 691^1 *691^2 *691^4 *691^8 *691^64 (mod 3337) = 691 * 290 *675 *1793 *2225 (mod 3337) = 170 * 675 *1793 * 2225 (mod 3337) = 1292 * 1793 * 2225 (mod 3337) = 678 *2225 (mod 3337) = 226 (mod 3337) = 226 = y0
Copyright © Wondershare Software
• • • • • • • • • • • • • • •
69179 mod 3337 = 226= y1 10179 mod 3337 = 1113= y2 07179 mod 3337 = 1988= y3 14179 mod 3337 = 141= y4 05179 mod 3337 = 523= y5 12179 mod 3337 = 2798= y6 15179 mod 3337 = 966= y7 05379 mod 3337 = 65= y8 26879 mod 3337 = 2341= y9 97179 mod 3337 = 387= y10 16979 mod 3337 = 333= y11 73279 mod 3337 = 1341= y12 83779 mod 3337 = 792= y13 78379 mod 3337 = 2784= y14 03279 mod 3337 = 1379= y15 Copyright © Wondershare Software
•
Jadi, cipherteks yang dihasilkan adalah Y=226111319881415232798966652341387333134179227841379 22== 61=== 11== 31== 98==b 81==Q 41==) 52==4 32== 79==O 89==Y 66==B 65==A 23== 41==) 38==& 73==I 33==! 13== 41==) 79==O 22== 78==N 41==) 37==% 9== hasil chipertext= =bQ)4OYBA)&I!)ON)% chipertext di ubah ke ascii= 226111319881415232798966652341387333134179227841379
Copyright © Wondershare Software
•
yi SK mod r Keterangan : SK = 1019, r = 3337 Blok-blok cipherteks didekripsikan sebagai berikut: 2261019 mod 3337 = 691= X1 11131019 mod 3337 = 101= X2 19881019 mod 3337 =071 = X3 1411019 mod 3337 = 141= X4 5231019 mod 3337 = 051= X5 27981019 mod 3337 = 121= X6 9661019 mod 3337 = 151= X7 651019 mod 3337 = 053= X8 23411019 mod 3337 = 268= X9 3871019 mod 3337 = 971= X10 3331019 mod 3337 = 169= X11 13411019 mod 3337 = 732= X12 792019 mod 3337 = 837= X13 27841019 mod 3337 = 783= X14 13791019 mod 3337 = 32= X14
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula. X = 69110107114105112115105326897116973283778332 yang dalam karakter ASCII adalah X = Enkripsi Data SMS
Copyright © Wondershare Software
Tes Kirim SMS
Copyright © Wondershare Software
• Tes Terima SMS
Copyright © Wondershare Software
• User Manual
Copyright © Wondershare Software
SIMULASI YUKKK… Copyright © Wondershare Software