KOMBINASI ALGORITMA RSA 512-
BIT
DAN
ONE TIME PAD
UNTUK PENGAMANAN PESAN
PADA NIC
MESSENGER
SKRIPSI
SATRIA PRAYUDI
091402037
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
PADA NIC
MESSENGER
SKRIPSIDiajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
SATRIA PRAYUDI 091402037
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : KOMBINASI ALGORITMA RSA 512-BIT DAN
ONE TIME PAD
UNTUK PENGAMANAN PESAN
PADA NIC MESSENGER
Kategori : SKRIPSI
Nama : SATRIA PRAYUDI
Nomor Induk Mahasiswa : 091402037
Program Studi : SARJANA (S-1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 27 Juni 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dedy Arisandi, ST.M.Kom
M. Andri Budiman S.T., M.Comp.Sc., M.E.M.
NIP. 197908312009121002 NIP. 197510082008011011
Diketahui/Disetujui oleh
Program Studi Teknologi Informasi Ketua,
PERNYATAAN
KOMBINASI ALGORITMA RSA 512-BIT DAN ONE TIME PAD
UNTUK PENGAMANAN PESAN
PADA NIC MESSENGER
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 27 Juni 2013
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pengasih dan Maha Penyayang, dengan limpahan rahmat dan karunia-Nya penulisan tugas akhir ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Dalam penyelesaian tugas akhir ini, tidak terlepas dari bantuan dan kerjasama serta doa dan dukungan dari berbagai pihak, untuk itu penulis sampaikan ucapan terima kasih sedalam-dalamnya dan penghargaan kepada :
1. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
2. Ketua dan Sekretaris Departemen Prof. Dr. Opim Salim Sitompul, M.Sc dan Drs. Sawaluddin, M.Sc yang telah memberikan dukungan, arahan dan bantuannya dalam menyelesaikan tugas akhir ini.
3. Seluruh dosen Departemen Teknologi Informasi dan Ilmu Komputer USU yang telah mengajarkan dan memberikan dukungan serta bantuannya dalam menyelesaikan tugas akhir ini.
4. Kepada Bapak M. Andri Budiman S.T., M.Comp.Sc., M.E.M. dan Bapak Dedy Arisandi, ST.M.Kom selaku pembimbing yang selalu memberikan arahan, bimbingan, keluangan waktu serta dukungan dalam menyelesaikan tugas akhir ini beserta Ibu Sarah Purnamawati S.T., M.Sc dan Bapak M. Fadly Syahputra B.Sc., M.Sc.IT yang bersedia menguji seminar hasil dan sidang sarjana saya.
5. Untuk kedua orang tua yang selalu memberi dukungan moril dan motivasi yang tak terhingga hingga saat ini.
6. Seluruh keluarga yang telah memberikan bantuan do’a dan dorongan dalam menyelesaikan tugas akhir ini.
7. Sahabat-sahabat Zaki, Toyo, Ussi, Razi, Rafa, Wildan, Mulki, Zizi, Ari, Bagus, Rozy, Aang, Yogi, Denny, Nazam, Mahatir, abang-kakak senior, adik-adik junior, dan seluruh teman-teman seperjuangan yang tidak dapat disebutkan.
8. Ummi Salamah Lubis yang secara tidak langsung memberi semangat.
ABSTRAK
Perkembangan dan pemakaian internet telah mendunia dewasa ini sudah semakin pesat, banyak dari kalangan pengguna baik kalangan siswa, mahasiswa dan pekerja perkantoran atau pelaku bisnis menggunakan fasilitas internet didalam penambahan ilmu pengetahuan dan mempermudah pekerjaan serta mendapatkan informasi dengan mudah, hal ini membuat developer aplikasi harus merubah acuannya dari merancang dan mendesain aplikasi yang bersifat desktop menjadi bersifat web-based, dengan memanfaatkan cloud
computing. Banyak contoh aplikasi yang berjalan dan berkembang sukses saat
ini dengan memanfaatkan cloud computing, yang penulis jadikan contoh dalam hal ini adalah aplikasi messenger atau aplikasi pengirim pesan tanpa biaya, mudah dan cepat dengan memanfaatkan fasilitas internet. Dalam perkembangan aplikasi messenger sangat membantu dalam pertukaran pesan, hal ini menjadi kesempatan kebocoran pesan semakin besar. Oleh karena itu diperlukan sebuah pendekatan untuk mengamankan pesan tersebut yaitu dengan menerapkan sistem kriptografi pada aplikasi messenger. Dalam penelitian ini penulis akan menerapkan sistem kriptografi asimetris RSA dan kriptografi simetris One Time Pad untuk mengamankan pesan. Berdasarkan pengujian yang telah dilakukan, kombinasi RSA dan One Time Pad dapat mengamankan pesan yang dikirim RSA teruji sebagai sistem kriptografi yang aman karena kesulitan dalam proses memfaktorkan bilangan yang sangat besar, dimana menggunakan sepasang bilangan prima sebagai kunci public dan privat sebesar 100 hingga 200 digit atau bahkan lebih besar (Schneier, 1996).
COMBINATION OF 512 BITS RSA ALGORITHMS AND ONE TIME PAD FOR MESSAGE SECURITY ON NIC MESSENGER SOFTWARE
ABSTRACT
Development and use of the internet has grown worldwide is now growing rapidly, many of the users of both the students and office workers or business people use the internet facility in the addition of science and facilitate the work and get information easily, this makes the application developer must change reference of designing a desktop application became web-based application, by utilizing cloud computing. Many examples of applications that are running and growing successful by utilizing cloud computing, the authors make an example in this regard is a messenger application or applications without the cost of sending a message, easily and quickly by utilizing the internet. During its development, messenger applications are very helpful in the exchange of messages, it became an opportunity to greater leak message. Therefore we need an approach to securing these messages by applying cryptographic systems on messenger application. In this study the authors will apply the RSA assymmetric cryptographic system and the One Time Pad symmetric cryptographic system to securing these messages. Based on the testing that has been done, a combination of RSA and One Time Pad can secure messages. RSA tested as secure cryptographic system because of difficulties in the process of factoring very large numbers, where RSA using a pair of prime numbers as a public and private key of 100 to 200 digits or even larger (Schneier, 1996).
DAFTAR ISI
PERSETUJUAN ... i
PERNYATAAN ... ii
PENGHARGAAN ... iii
ABSTRAK ... iv
ABSTRACT ... v
DAFTAR ISI ... vi
DAFTAR TABEL ... ix
DAFTAR GAMBAR ... x
BAB 1 PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 2
1.3. Batasan Masalah ... 2
1.4. Tujuan Penelitian ... 3
1.5. Manfaat Penelitian ... 3
1.6. Sistematika Penulisan ... 3
BAB 2 TINJAUAN PUSTAKA ... 5
2.1. Pertukaran Data ... 5
2.2. Keamanan Informasi ... 5
2.3. Android ... 6
2.4. Kriptografi... 6
2.4.1. Algoritma RSA ... 7
2.4.2. Algoritma LCG (Linear Congruential Generators) ... 99 2.4.3. Fermat’s Primality Test... 10
2.4.4. Algoritma Rabin-Miller ... 12
2.4.5. Algoritma One Time Pad ... 12
2.5. Database ... 14
2.5.1. DBMS ... 14
2.6. PHP ... 15
2.7. DFD... 16
2.8. UML (Unified Modelling Language) ... 16
2.9. Penelitian Terdahulu ... 17
BAB 3 ANALISIS DAN PERANCANGAN ... 19
3.1. Use Case Diagram... 19
3.2. Data Flow Diagram ... 20
3.2.1. DFD Level 0 ... 20
3.2.2. DFD Level 1 ... 21
3.2.3. DFD Manajemen Chat Level 2 ... 22
3.2.4. DFD Manajemen Teman Level 2 ... 23
3.2.5. DFD Manajemen Pengguna Level 2 ... 24
3.3. Flowchart ... 24
3.3.1. Flowchart Sistem ... 25
3.3.2. Flowchart Enkripsi Pesan ... 28
3.3.3. Flowchart Dekripsi Pesan ... 35
3.4. Perancangan Sistem ... 39
3.4.1. Kebutuhan Perangkat Lunak ... 39
3.4.2. Perancangan Antar Muka Sistem ... 39
3.5. Perancangan Database ... 47
3.5.1. Perancangan Database ... 47
3.5.2. Relasi Antar Tabel ... 49
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 50
4.1. Spesifikasi Perangkat Keras dan Perangkat Lunak ... 50
4.2. Uji Batasan ... 51
4.3. Pengujian Sistem Secara Menyeluruh ... 58
4.3.1. Pengujian Pada Sisi User ... 58
4.4. Analisis Kriptografi Terhadap Sistem ... 72
4.4.1. Analisis Keamanan Pesan Antar Pengguna NIC Messenger ... 72
BAB 5 KESIMPULAN DAN SARAN ... 78
5.1. Kesimpulan ... 78
5.2. Saran ... 78
DAFTAR PUSTAKA ... 80
DAFTAR TABEL
Hal
Tabel 2.1 Tabel Penelitian Terdahulu 18
DAFTAR GAMBAR
Hal
Gambar 3.1 Use Case Diagram 19
Gambar 3.2 Diagram Konteks 20
Gambar 3.3 DFD Level 1 21
Gambar 3.4 DFD Manajemen Chat Level 2 22
Gambar 3.5 DFD Manajemen Teman Level 2 23
Gambar 3.6 DFD Manajemen Pengguna Level 2 24
Gambar 3.7 Flowchart Sistem 25
Gambar 3.8 Flowchart Halaman Utama 26
Gambar 3.9 Flowchart Proses Enkripsi 28
Gambar 3.10 Enkripsi One Time Pad 29
Gambar 3.11 Enkripsi RSA 512-Bit 30
Gambar 3.12 Uji Bilangan Prima 31
Gambar 3.13 Flowchart Proses Dekripsi 35
Gambar 3.14 Dekripsi RSA 512-Bit 36
Gambar 3.15 Dekripsi One Time Pad 37
Gambar 3.16 Form Registrasi 40
Gambar 3.17 Form Login 41
Gambar 3.18 Halaman Utama 41
Gambar 3.19 Halaman Daftar Teman 42
Gambar 3.20 Halaman Hapus Teman 43
Gambar 3.21 Halaman Daftar Pengguna 44
Gambar 3.22 Halaman Tambah Teman 45
Gambar 3.23 Halaman Form Chat 46
Gambar 3.24 Table User 47
Gambar 3.25 Table Chat 48
Gambar 3.26 Table Nic List 48
Gambar 3.27 Database Relationship 49
Gambar 4.2 Proses Enkripsi Kunci OTP 52
Gambar 4.3 Proses Pembangkit Kunci OTP 53
Gambar 4.4 Proses Enkripsi OTP 54
Gambar 4.5 Proses Dekripsi OTP 54
Gambar 4.6 Proses Pembangkit Bilangan Acak 55
Gambar 4.7 Proses Pembangkit Bilangan Prima Acak 55
Gambar 4.8 Proses Pengujian Bilangan Prima 56
Gambar 4.9 Proses Mendapatkan Nilai P dan Q 57
Gambar 4.10 Proses Mendapatkan Nilai E 57
Gambar 4.11 Proses Mendapatkan Nilai D 58
Gambar 4.12 Halaman Registrasi 59
Gambar 4.13 Halaman Login 60
Gambar 4.14 Halaman Utama 61
Gambar 4.15 Halaman Menu Pada Pertemanan 62
Gambar 4.16 Halaman Daftar Chat 63
Gambar 4.17 Halaman Chat Kepada Teman 64
Gambar 4.18 Pengiriman Pesan 65
Gambar 4.19 Pesan Diterima 68
Gambar 4.20 Notifikasi Hapus Pesan 69
Gambar 4.21 Halaman List 70
Gambar 4.22 Halaman Menu Tambah Teman 71
Gambar 4.23 Sniffing Jaringan Dengan Wireshark 72
Gambar 4.24 Analisis HTTP Request 73
Gambar 4.25 Chat Setelah Dienkripsi 74
ABSTRAK
Perkembangan dan pemakaian internet telah mendunia dewasa ini sudah semakin pesat, banyak dari kalangan pengguna baik kalangan siswa, mahasiswa dan pekerja perkantoran atau pelaku bisnis menggunakan fasilitas internet didalam penambahan ilmu pengetahuan dan mempermudah pekerjaan serta mendapatkan informasi dengan mudah, hal ini membuat developer aplikasi harus merubah acuannya dari merancang dan mendesain aplikasi yang bersifat desktop menjadi bersifat web-based, dengan memanfaatkan cloud
computing. Banyak contoh aplikasi yang berjalan dan berkembang sukses saat
ini dengan memanfaatkan cloud computing, yang penulis jadikan contoh dalam hal ini adalah aplikasi messenger atau aplikasi pengirim pesan tanpa biaya, mudah dan cepat dengan memanfaatkan fasilitas internet. Dalam perkembangan aplikasi messenger sangat membantu dalam pertukaran pesan, hal ini menjadi kesempatan kebocoran pesan semakin besar. Oleh karena itu diperlukan sebuah pendekatan untuk mengamankan pesan tersebut yaitu dengan menerapkan sistem kriptografi pada aplikasi messenger. Dalam penelitian ini penulis akan menerapkan sistem kriptografi asimetris RSA dan kriptografi simetris One Time Pad untuk mengamankan pesan. Berdasarkan pengujian yang telah dilakukan, kombinasi RSA dan One Time Pad dapat mengamankan pesan yang dikirim RSA teruji sebagai sistem kriptografi yang aman karena kesulitan dalam proses memfaktorkan bilangan yang sangat besar, dimana menggunakan sepasang bilangan prima sebagai kunci public dan privat sebesar 100 hingga 200 digit atau bahkan lebih besar (Schneier, 1996).
COMBINATION OF 512 BITS RSA ALGORITHMS AND ONE TIME PAD FOR MESSAGE SECURITY ON NIC MESSENGER SOFTWARE
ABSTRACT
Development and use of the internet has grown worldwide is now growing rapidly, many of the users of both the students and office workers or business people use the internet facility in the addition of science and facilitate the work and get information easily, this makes the application developer must change reference of designing a desktop application became web-based application, by utilizing cloud computing. Many examples of applications that are running and growing successful by utilizing cloud computing, the authors make an example in this regard is a messenger application or applications without the cost of sending a message, easily and quickly by utilizing the internet. During its development, messenger applications are very helpful in the exchange of messages, it became an opportunity to greater leak message. Therefore we need an approach to securing these messages by applying cryptographic systems on messenger application. In this study the authors will apply the RSA assymmetric cryptographic system and the One Time Pad symmetric cryptographic system to securing these messages. Based on the testing that has been done, a combination of RSA and One Time Pad can secure messages. RSA tested as secure cryptographic system because of difficulties in the process of factoring very large numbers, where RSA using a pair of prime numbers as a public and private key of 100 to 200 digits or even larger (Schneier, 1996).
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Perkembangan dan pemakaian internet telah mendunia dewasa ini sudah
semakin pesat, banyak dari kalangan pengguna baik kalangan siswa, mahasiswa dan
pekerja perkantoran atau pelaku bisnis menggunakan fasilitas internet didalam
penambahan ilmu pengetahuan dan mempermudah pekerjaan serta mendapatkan
informasi dengan mudah, hal ini membuat developer aplikasi harus merubah acuannya
dari merancang dan mendesain aplikasi yang bersifat desktop menjadi bersifat
web-based, dengan memanfaatkan cloud computing. Banyak contoh aplikasi yang berjalan
dan berkembang sukses saat ini dengan memanfaatkan cloud computing, yang penulis
jadikan contoh dalam hal ini adalah aplikasi messenger atau aplikasi pengirim pesan
tanpa biaya, mudah dan cepat dengan memanfaatkan fasilitas internet.
Banyak software messenger yang telah beredar di internet yang dapat
digunakan secara bebas, akan tetapi hanya beberapa saja yang mengklaim
memanfaatkan kriptografi untuk mengamankan pesan penggunanya salah satunya
WhatsApp Messenger untuk versi terbaru, seperti yang telah mereka beritahukan
dalam website mereka. Dalam skripsi ini nantinya penulis akan mengambil aplikasi
yang bersifat web-based, sebagai contoh pengimplementasian pada NIC Messenger.
Penulis ingin mengimplementasikan algoritma enkripsi yang sudah terkenal yaitu
RSA dan One Time Pad untuk mengamankan komunikasi antar pengguna dari pihak
lain yang ingin menyadap atau tindakan krimal lainnya. Ada banyak algoritma lain
yang dapat digunakan, akan tetapi algoritma RSA sudah sangat popular dikalangan
developer sebagai algoritma enkripsi yang sangat aman. RSA teruji sebagai sistem
kriptografi yang aman karena kesulitan dalam proses memfaktorkan bilangan yang
sangat besar, dimana RSA menggunakan sepasang bilangan prima sebagai kunci
publik dan privat sebesar 100 hingga 200 digit atau bahkan lebih besar (Schneier,
Beberapa penerapan sistem kriptografi RSA sebagai sistem pengaman data
antara lain, meningkatkan keamanan informasi dalam sistem e-voting berbasis pada
kriptografi kunci publik. al-Anie et al menerapkan sistem enkripsi RSA pada proses
vote yang dilakukan untuk mencegah terjadinya penyadapan dan kecurangan (al-Anie,
et al. 2011), dan meningkatkan algoritma keamanan untuk komunikasi pesan dengan
mengkombinasikan RSA dengan beberapa sistem kriptografi lainnya. Rasool et al,
menyadari bahwasanya dengan mengkombinasikan beberapa sistem enkripsi dalam
proses komunikasi pesan akan meningkatkan keamanan pada komunikasi pesan, hal
ini dikarenakan pada sebuah algoritma kriptografi masih terdapat kekurangan (Rasool,
et al. 2011).
Beberapa penerapan sistem kriptografi One Time Pad, dengan memanfaatkan
fungsi One Time Pad dan multi-chaotic untuk meningkatkan algoritma enkripsi dan
meningkatkan kompleksitas sistem enkripsi sehingga sangat sulit untuk dipecahkan
dan diprediksi dalam penerapannya pada enkripsi gambar (al-Najjar, et al. 2012), dan
menerapkan sistem enkripsi One Time Pad pada email antar dua individu untuk
mengamanakan isi email (Connelly, 2008).
1.2 Rumusan Masalah
Berdasarkan pemaparan pada latar belakang tersebut, maka rumusan masalahnya
adalah, mengamankan pesan yang benar-benar aman dan efektif untuk mencegah
terjadinya penyadapan pesan.
1.3 Batasan Masalah
Agar pengimplementasian algoritma RSA kedalam NIC Messenger tidak
terdapat banyak masalah, penulis membatasi masalah tersebut sebagai berikut:
1. Menggunakan kunci RSA sebesar 512-bit.
2. Pembangunan software fokus pada pengimplementasian kriptografi pada
pesan.
3. Hanya mengenkripsi data berupa text.
1.4 Tujuan Penelitian
Adapaun tujuan dari penelitian ini adalah sebagai berikut:
1. Untuk mengamankan pesan antar pengguna NIC Messenger dengan
menggunakan RSA dan One Time Pad.
1.5 Manfaat Penelitian
Penelitian ini diharapkan dapat memberikan manfaat bagi penulis, pembaca dan para
peneliti pemula, sebagai berikut:
1. Menjadikan salah satu alternatif pilihan bagi developer aplikasi untuk
mengamankan informasi pengguna.
2. Menambah pengetahuan baru tentang kombinasi RSA dan One Time Pad untuk pengamanan pesan.
1.6 Sistematika Penulisan
Tugas akhir ini disusun dalam enam bab dengan sistematika penulisan sebagai
berikut:
Bab I Pendahuluan
Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya
penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang
terdapat dalam bab pendahuluan ini meliputi latar belakang masalah,
perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat
penelitian.
Bab II Tinjauan Pustaka
Pada bab tinjauan pustaka menguraikan landasan teori, penelitian terdahulu,
kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam
Bab III Metodologi
Bab ini menguraikan metodologi penelitian yang dilakukan dalam menerapkan
kombinasi Algoritma RSA dan One Time Pad untuk pengamanan pesan pada
NIC Messenger.
Bab IV Hasil dan Pembahasan
Pada bab hasil dan pembahasan akan memaparkan hasil terhadap uji coba
algoritma yang telah dilakukan dalam meyelesaikan permasalahan
pengamanan pesan padaNIC Messenger.
Bab V Kesimpulan dan Saran
Bab ini berisi tentang kesimpulan hasil penelitian dan saran-saran yang
BAB 2
TINJAUAN PUSTAKA
Pada bab ini, akan dibahas landasan teori, penelitian terdahulu, kerangka pikir dan
hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada NIC
Messenger dengan Algoritma RSA 512-bit dan One Time Pad.
2.1. Pertukaran Data
Dalam software messenger pada umumnya terjadi pertukaran data, dapat berupa pesan
teks, suara dan dapat pula berupa gambar. Maksud dari pertukaran data disini adalah
proses pengiriman data yang berupa teks, suara atau gambar dari pengguna messenger
satu ke pengguna messenger lainnya, dimana data yang dikirimkan akan disimpan
terlebih dahulu ke server dan dari server akan dikirim ke penerima data tersebut.
Karena proses ini penulis dapat mengambil kesimpulan bahwasanya pertukaran data
pada aplikasi messenger sangat rentan terhadap kejahatan maya seperti data dicuri dan
atau data dibajak oleh pihak yang tidak berkepentingan.
2.2. Keamanan Informasi
Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting bagi sebuah
organisasi, perguruan tinggi, lembaga pemerintahan maupun individual, kemampuan
dalam mengakses dan menyediakan informasi secara cepat serta akurat (Rahardjo,
2005). Karena pentingnya sebuah informasi, seringkali informasi yang diinginkan
hanya dapat diakses oleh orang tertentu misalnya pihak penerima yang diinginkan,
dan jika informasi ini sampai diterima oleh pihak yang tidak diinginkan akan
berdampak kerugian pada pihak pengirim.
Keamanan informasi adalah bagaimana kita dapat mencegah penipuan, atau
paling tidak mendeteksi adanya penipuan di sebuah sistem yang berbasis informasi,
Untuk itu diperlukanlah sebuah pendekatan dalam melakukan pengamanan
pada informasi, seperti melakukan enkripsi, steganografi, cipher dan hashing terhadap
informasi tersebut.
2.3. Android
Android adalah salah satu sistem operasi yang dapat berjalan pada handphone,
android merupakan turunan dari sistem operasi linux. Oleh karena itu banyak vendor
telepon genggam memanfaatkan sistem operasi android yang open source hal ini
mengundang banyaknya developer aplikasi untuk mengembangkan berbagai aplikasi
mobile karena mereka dapat dengan bebas biaya mengembangkan aplikasi untuk dapat
digunakan di handphone berbasis android. Berbeda dengan sistem operasi IOS
besutan Apple yang mengharuskan developer aplikasi membayar $99 per tahun untuk
mendapatkan lisensi agar aplikasi buatan developer dapat diinstalasi pada iPhone atau
iDevice lainnya. Hal ini yang menjadi alasan penulis untuk mengembangkan aplikasi
NIC Messenger ini pada handphone berbasis android.
2.4. Kriptografi
Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik
matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas.
Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi
modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian
kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi
(pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang
menggunakan penyandian kunci asimetris (Sadikin, 2012). Berikut ini adalah
beberapa mekanisme yang berkembang pada kriptografi:
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang
yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan
pada sebuah data.
2. Penyandian dengan kunci simetris
Penyandian dengan kunci simetris adalah penyandian yang pada proses
enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang
digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis
kriptografi dengan penyandian kunci simetris antara lain Data Encryption
Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan
International Data Encryption Algorithm (IDEA).
3. Penyandian dengan kunci asimetris
Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci
publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki
kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik
(public key). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia
(private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris
antara lain RSA, Diffie-Helman, ELGamal, Knapsack, dan beberapa
penerapan teknik Elliptic Curve.
2.4.1 Algoritma RSA
Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local
area network (LAN), hal ini memberi kesempatan yang besar untuk mencegat data
dan memalsukan pesan. Satu-satunya cara yang mudah untuk menjaga keamanan dan
keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan
kriptografi kunci publik.
RSA adalah sistem kriptografi dengan kunci publik yang pertama kali dapat
berjalan dan dipraktekkan, ditemukan pada tahun 1977 dan dipublikasikan pada tahun
1978 oleh Rivest, Shamir dan Adleman (RSA) di Institut Teknologi Massachusetts.
RSA adalah sistem kriptografi yang masih paling banyak digunakan seperti transaksi
Rumus dasar dari metode enkripsi dan dekripsi RSA adalah
C≡� mod N (1)
Dan
M≡� mod N (2)
Penjelasan:
N = p * q
p dan q = Bilangan prima
M = Plaintext
C = Ciphertext
e = Encryption exponent
d = Decryption exponent
ɸ(N) = (p-1)(q-1)
Tahapan Algoritma RSA
1. Pilih dua bilangan prima secara acak dan tidak sama.
2. Hitung perkalian p dan q, simpan dalam variabel n.
3. Hitung ɸ(n) ≡ (p-1).(q-1)
4. Pilih e secara acak dengan syarat, PBB(e, ɸ(n)) = 1
5. Hitung d ≡ e-1(mod ɸ(n) atau d.e ≡ 1.mod(ɸ(n)) 6. Rahasiakan p, q, ɸ(n) dan d
7. Kirimkan e dan n
Contoh kasus sederhana algoritma Kriptografi RSA:
P = 47 (bilangan prima) dan Q = 71 (bilangan prima)
N = P.Q = 3337
ɸ(N) = (P-1)*(Q-1) = 3220 E = 79 (pilih angka acak)
D = 1+(k*3220)/79
dicoba K = 1,2,..,dst
Misalkan plainteks M = “ABC”, ubah kedalam ASCII menjadi “65 66 67”
Enkripsi dengan kunci publik E = 79 dan N = 3337:
M1 = 65 -> C1 = 65^79 mod 3337 = 541
M2 = 66 -> C2 = 66^79 mod 3337 = 795
M3 = 67 -> C3 = 67^79 mod 3337 = 1479
Dekripsi dengan kunci D = 1019:
C1 = 541 -> M1 = 541^1019 mod 3337 = 65 -> A
C2 = 795 -> M2 = 795^1019 mod 3337 = 66 -> B
C3 = 1479 -> M3 = 1479^1019 mod 3337 = 67 -> C
2.4.2 Algoritma LCG (Linear Congruential Generators)
Algoritma LCG atau Linear Congruential Generators adalah algoritma yang
umumnya digunakan untuk pembangkit bilangan acak, dengan rumus sebagai berikut:
Xn = (a * Xn-1 + b) mod m (3)
Penjelasan:
X = Kunci sementara
a = Bilangan pengali
b = Bilangan inkremen
m = Modulus
Keuntungan dari linear congruential generators adalah proses pembangkitan
bilangan acak cepat, dan membutuhkan beberapa operasi per-bit (Schneier, 1996).
Akan tetapi kekurangan dari algoritma pembangkit bilangan acak ini adalah
bilangan acak yang dihasilkan tidak dapat digunakan untuk kriptografi, karena
bilangan acak tersebut bisa ditebak. Pada penelitian ini algoritma LCG akan
dikombinasikan dengan waktu dalam satuan milidetik, dimana untuk setiap bilangan
acak yang dihasilkan akan ditambahkan dengan milidetik saat ini, dengan demikian
Contoh:
m = 1024
a = 105
c = 71
X = 1
t = Waktu dalam milidetik
Pengujian LCG tanpa kombinasi waktu
0 = (105 * 176) +71) mod 1024 = 176
1 = (105 * 119) +71) mod 1024 = 119
2 = (105 * 278) +71) mod 1024 = 278
3 = (105 * 589) +71) mod 1024 = 589
4 = (105 * 476) +71) mod 1024 = 476
Hasil pengujian jika dilakukan berulang kali akan tetap menghasilkan bilangan
yang sama.
Pengujian LCG dengan kombinasi waktu
0 = ((105 * 46) +71 + 514942) mod 1024 = 46
1 = ((105 * 753) +71 + 515020) mod 1024 = 753
2 = ((105 * 267) +71 + 515051) mod 1024 = 267
3 = ((105 * 464) +71 + 515078) mod 1024 = 464
4 = ((105 * 694) +71 + 515103) mod 1024 = 694
Hasil pengujian jika dilakukan berulang kali akan menghasilkan bilangan yang
berbeda.
2.4.3 Fermat’s Primality Test
Untuk menghasilkan sebuah kunci pada sistem kriptografi kunci publik RSA
membutuhkan bilangan P dan Q yang prima, algoritma Fermat’s Little Theorem dapat
digunakan untuk menguji apakah sebuah bilangan prima atau bilangan biasa (Thomas,
Sebuah bilangan dikatakan prima jika memenuhi rumus sebagai berikut:
ap-1 ≡ 1 (mod p) atau ap-1 (mod p) ≡ 1 (4)
Penjelasan:
a = Bilangan Inkremen
p = Bilangan yang diuji
Jika dalam interval a dalam pengujian menghasilkan sekali saja nilai bukan 1
maka bilangan yang diuji bukan bilangan prima.
Contoh:
Uji keprimaan angka 6
a = 1
15 (mod 6) = 1 a = 2
25 (mod 6) = 2
Proses berhenti karena dalam interval a = 2 menghasilkan nilai bukan 1, maka
angka 6 bukanlah bilangan prima.
Uji keprimaan angka 5
a = 1
14 (mod 5) = 1 a = 2
24 (mod 5) = 1 a = 3
34 (mod 5) = 1 A = 4
44 (mod 5) = 1
Proses berhenti dan dalam setiap interval a menghasilkan nilai 1, maka angka
2.4.4 Algoritma Rabin-Miller
Michael Rabin dan Gary Miller mengembangkan sebuah algoritma untuk mengujian
keprimaan sebuah bilangan pada tahun 1976. Algoritma ini adalah algoritma yang
umumnya digunakan untuk menentukan sebuah bilangan prima (Schneier, 1996).
Berikut ini adalah langkah-langkah dalam melakukan pengujian bilangan
prima berdasarkan Algoritma Rabin-Miller pada buku Schneier (1996).
1. Pilih bilangan acak n untuk diuji dan bilangan acak a untuk menguji
2. Hitung b yang dalam hal ini 2b adalah nilai pangkat terbesar yang habis membagi n-1
3. Hitung M dengan n = 1 + 2b * m atau m = n-1 / 2b 4. Nyatakan j = 0 dan z = am mod n
5. Jika z = 1 atau z = n-1, maka n adalah bilangan prima
6. Jika z > 0 dan z = 1, maka n bukan bilangan prima
7. Nyatakan j = j+1. Jika j < b dan z ≠ n-1, nyatakan z = z2 mod n dan ulangi langkah 7. Jika z = p-1, maka n adalah bilangan prima
8. Jika j = b dan z ≠ n-1, maka n adalah bukan bilangan prima.
Contoh:
1. n = 223, n-1 = 222
2. b = 1, jadi 2b = 2. Karena 2b mod n-1 = 21 mod 222 = 0 3. a = 24
4. hitung M, 223 = 1 + 21 * M, M = 223 – 1 / 21, M = 111 5. j = 0, z = 24111 mod 223, z = 222
6. z = 222 maka n adalah bilangan prima.
2.4.5 Algoritma One Time Pad
Sandi One Time Pad merupakan salah satu dari Sistem Kriptografi Klasik berbasis
subtitusi, ditemukan oleh Major Joseph Mauborgne pada tahun 1917. Proses kerja
Sandi One Time Pad menggunakan kunci yang acak setiap karakternya untuk semua
teks asli, kunci yang acak tersebut hanya digunakan sekali saja dan panjang kuncinya
sama dengan panjang teks asli, sistem Sandi One Time Pad diklaim merupakan sandi
Rumus dasar dari Sandi One Time Pad adalah
Enkripsi:
ci = (pi + ki) mod 26 (10)
Dekripsi:
di = (ci - ki) mod 26 (11)
Penjelasan:
c = Ciphertext
p = Plaintext
k = Kunci enkripsi
i = Karakter ke-i
Tahapan Sandi OTP
1. Pilih karakter secara acak sebanyak karakter pada pesan sebagai kunci
enkripsi.
2. Jumlahkan karakter ke-i dari pesan dengan kunci ke-i dan mod 26.
Contoh kasus sederhana algoritma Kriptografi One Time Pad:
Misalkan plainteks P = “BUKU”
Generate Kunci OTP sepanjang P karakter = “70 75 83 78”
Ubah P dan Kunci kedalam bentuk ASCII:
P = 66 85 75 85
K = 70 75 83 78
Enkripsi Ci = (Pi + Ki) mod 26 :
C1 = (66+70) mod 26 = 84 -> T
C2 = (85+75) mod 26 = 108 -> l
C3 = (75+83) mod 26 = 80 -> P
Dekripsi Pi = (Ci - Ki) mod 26 :
P1 = (84-70) mod 26 = 66 -> B
P2 = (108-75) mod 26 = 85 -> U
P3 = (80-83) mod 26 = 75 -> k
P4 = (85-78) mod 26 = 85 -> U
2.5. Database
Menurut Rosa et al (2011), Database atau basis data adalah sistem terkomputerisasi
yang berfungsi untuk menyimpan data atau informasi yang sudah diolah dan membuat
informasi tersedia saat dibutuhkan.
Kebutuhan basis data dalam sistem informasi meliputi 2 hal, yaitu:
1. Memasukkan, menyimpan, dan mengambil data
2. Membuat laporan berdasarkan data yang telah disimpan
2.5.1 DBMS
Menurut Rosa et al (2011), DBMS (Database Management System) atau Sistem
Manajemen Basis Data adalah aplikasi yang digunakan untuk menyimpan, mengelola,
dan menampilkan data.
Aplikasi DBMS memiliki beberapa persyaratan minimal sebagai berikut:
1. Menyediakan fasilitas untuk mengelola akses data
2. Mampu menangani integritas data
3. Mampu menangani akses data yang dilakukan secara efektif
4. Mampu menangani backup data
DBMS sudah lama berkembang dimulai sejak tahun 1960an, dan memasuki
tahun 1970an mulai berkembang teknologi Relational DBMS yaitu DBMS yang
berbasis model relasional dikembangkan oleh Edgar J. Codd. DBMS model relasional
adalah sebuah model pada DBMS yang memandang data sebagai sekumpulan tabel
yang saling berkaitan. Seiring perkembangan teknologi, model DBMS berkembang
menjadi Object Oriented DBMS atau DBMS dengan model berorientasi objek yang
Berikut ini adalah beberapa macam DBMS yang paling populer dan banyak
digunakan di dunia saat ini, yaitu:
1. Oracle
2. Microsoft SQL Server
3. Microsoft Access
4. MySQL
2.5.2 MySQL
MySQL adalah salah satu DBMS yang sangat populer dikalangan developer aplikasi
web. Untuk dapat mengelola data yang disimpan dalam database, memerlukan sebuah
perintah khusus yang dikirimkan kepada DBMS bernama SQL (Structured Query
Language). Dalam MySQL, SQL disebut sebagai pernyataan.
Adapun beberapa pernyataan umum yang digunakan dalam MySQL adalah
sebagai berikut:
1. “SELECT”, berguna untuk menampilkan informasi dari sebuah table pada
database.
2. “UPDATE”, berguna untuk mengubah informasi dari sebuah table pada
database.
3. “DELETE”, berguna untuk menghapus informasi dari sebuah table pada
database.
4. “INSERT”, berguna untuk menambah informasi baru kedalam table pada
database.
2.6. PHP
Menurut Sibero (2011), PHP (Hypertext Preprocessor) adalah pemrograman
interpreter yaitu proses penerjemahan dari kode sumber menjadi kode mesin yang
dimengerti komputer pada saat baris kode dijalankan secara langsung. PHP pada
awalnya ditulis menggunakan bahasa PERL (Perl Script), kemudian ditulis ulang
PHP adalah bahasa pemrograman Server Side Programming, memungkinkan sebuah
website yang dibangun bersifat dinamis (Sibero, 2011).
2.7. DFD
Dalam pembangunan software, perlu adanya konsep pemrograman terstruktur untuk
memudahkan developer dalam membagi-bagi fungsi, prosedur, dan modul program
yang dibangun. Dalam konsep pemrograman terstruktur dikenal metode DFD (Data
Flow Diagram). DFD adalah sebuah metode yang digunakan untuk merepresentasikan
sebuah sistem atau perangkat lunak pada beberapa level detail. DFD lebih sesuai
untuk memodelkan fungsi-fungsi dan prosedur-prosedur pada pemrograman sistem
yang terstruktur (Structural Programming) (Rosa, et al. 2011).
2.8. UML (Unified Modelling Language)
Untuk membantu dalam pengembangan perangkat lunak dikenal istilah pemodelan.
Salah satu pemodelan yang saat ini paling banyak digunakan oleh pengembang
perangkat lunak adalah UML (Unified Modelling Language). UML adalah standar
bahasa yang sering digunakan dalam bidang industri untuk mendefinisikan
requirement (kebutuhan), membuat analisis dan desain, serta menggambarkan
arsitektur dalam pemrograman berorientasi objek.
Ada beberapa hal yang dimaksud dalam kompleksitas pada perangkat lunak
(Rosa, et al. 2011):
1. Kompleksitas domain atau permasalahan perangkat lunak
2. Kesulitas mengelola proses pengembangan perangkat lunak
3. Kemungkinan fleksibilitas perubahan perangkat lunak
4. Permasalahan karakteristik bagian-bagian perangkat lunak secara diskrit
UML terbagi atas 3 (tiga) kategori, yaitu diagram struktur (structure diagram), diagram kelakuan sistem (behaviour diagram), dan diagram interaksi (interaction
case dari kategori diagram kelakuan sistem, untuk menggambarkan interaksi antara satu atau lebih aktor dengan perangkat lunak (Rosa, et al. 2011).
2.9. Penelitian Terdahulu
Beberapa penelitian yang menjadi bahan pembelajaran penulis tentang penyelesaian
masalah keamanan dalam pertukaran pesan.
Wahyudi et al (2008) telah mencoba mengamankan pesan dengan
menggunakan teknik steganografi dan algoritma AES, Wahyudi dan Silitongan
merancang aplikasi yang menyembunyikan pesan sebelum dikirim kepada penerima
kedalam sebuah gambar dengan teknik steganografi, sebelum pesan disisipkan
kedalam gambar pesan asli dienkripsi terlebih dahulu menggunakan algoritma AES.
Hasilnya pesan menjadi tersembunyi dengan tidak mencurigakan karena telah
disisipkan kedalam sebuah gambar.
Connely (2008) telah menerapkan algoritma One Time Pad untuk
mengamankan email. Connely menerapkan sandi One Time Pad dan teknik TRNG
(True Random Number Generator) untuk menghasilkan nilai yang benar-benar
random sebagai kunci One Time Pad. Hasilnya email yang dienkripsi benar-benar
rahasia, atau perfect secrecy.
Rasool et al (2011) telah mencoba meningkatkan algoritma keamanan dalam
komunikasi pesan. Rasool et al, menerapkan kombinasi dari algoritma kunci simetris
FSET (algoritma yang dibuat oleh Varghese Paul), algoritma kunci publik RSA dan
teknik hashing menggunakan SHA-2. Hasilnya komunikasi pesan menjadi rahasia
karena telah dienkripsi menggunakan FSET, kemudian kunci yang digunakan telah
dienkripsi oleh RSA, untuk mengetahui apakah pesan asli masih terbukti valid,
mereka melakukan pengujian menggunakan SHA-2.
Pardede (2012) telah mencoba menerapkan RSA sebagai pengamanan sistem
e-voting. Hasilnya data jumlah suara yang dihasilkan dari proses voting pemilih dalam
Table 1.1 Tabel penelitian terdahulu
No Peneliti Penelitian Algoritma Hasil
1 Wahyudi et al (2008)
Mengamankan
pesan Steganografi dan AES Tidak praktis
2 Connely
(2008)
Mengamankan
email One Time Pad Sangat aman
3 Rasool et al (2011)
Mengamankan
pesan
FSET, RSA, dan
SHA-2 Sangat aman
4 Pardede
(2012)
Mengamankan
BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas tentang rancangan sistem seperti flowchart proses enkripsi
dan dekripsi menggunakan One Time Pad dan RSA, use case untuk melihat proses
apa saja yang dapat dilakukan oleh pengguna serta DFD dari proses pengiriman pesan,
penerimaan pesan, penambahan teman, penghapusan teman dan registrasi pengguna
baru.
3.1 Use Case Diagram
Use case diagram adalah salah satu pemodelan dalam sistem informasi, use case
berfungsi untuk memodelkan aspek perilaku dari sistem. Berikut ini adalah use case
diagram pada NIC Messenger:
sender
register
login
hapus chat tambah teman hapus teman
receiver kelola chat
kelola teman
lupa password
<<include>> <<include>>
Dari gambar 3.1 dapat dijelaskan bahwasanya ada dua aktor yang dapat
menggunakan software ini, yaitu sender dan receiver. Sender atau receiver bisa
pengguna yang sama. Akan tetapi memiliki hak yang sama dalam menggunakan
sistem, beberapa sistem yang ada pada NIC Messenger yaitu:
Register Mendaftarkan akun baru untuk dapat menggunakan software
Login Melakukan pengujian kelayakan sebagai pengguna
Kelola chat Melakukan pengelolaan pada pesan
Kelola teman Melakukan pengelolaan pada pengguna lain yang telah terhubung pada pengguna
Logout Keluar dari software
3.2 Data Flow Diagram (DFD)
3.2.1 DFD Level 0
DFD level 0 atau pada umumnya disebut juga dengan diagram sistem inti
(fundamental system model) dan diagram konteks (context diagram) menjelaskan
secara sederhana dalam bentuk diagram dari proses software (Rosa, et al. 2011).
Berikut ini diagram konteks NIC Messenger:
NIC Messenger
Sender Register, login, kirim chat, Receiver manajemen teman, manajemen pengguna lain
Sedangkan untuk user sebagai receiver dapat mengakses proses register, login,
terima chat, manajemen teman, manajemen pengguna lain kemudian sistem memberi
3.2.2 DFD Level 1
DFD level 1 adalah diagram yang menampilkan setiap relasi antar proses pada NIC
Messenger. Berikut ini adalah DFD level 1 NIC Messenger:
Register
Dari gambar 3.3 dapat dijelaskan bahwasanya software ini memiliki 6 proses
pokok untuk melayani pengguna baik sebagai sender (pengirim) maupun receiver
(penerima) yaitu: register, login, lupa password, manajemen chat, manajemen teman
dan manajemen pengguna.
Pada proses manajemen chat, manajemen teman dan manajemen pengguna,
user (sender atau receiver) diharuskan untuk melakukan proses login terlebih dahulu
Berikut ini adalah DFD level 2 dari proses manajemen chat:
Gambar 3.4 DFD Manajemen Chat Level 2
Pada gambar 3.4 dapat dijelaskan, setelah melakukan proses login, sender
mengirim pesan kepada receiver, pertama sekali proses kirim chat akan mengirim
pesan tersebut kedalam database, setelah chat tersimpan proses terima chat akan
mengambil pesan tersebut dan mengirimkannya kepada receiver sesuai dengan
id_receiver dan id_sender dimana dalam proses kirim chat dan terima chat nantinya
pesan akan diurutkan kepada pengirim dan penerima sesuai id_sender dan id_receiver
yang tersimpan dalam tbl_chat.
Sender maupun receiver dapat menghapus pesan dengan mengirim id_chat
kepada proses hapus chat, kemudian proses hapus chat akan menghapus chat
berdasarkan id_chat yang ada pada tbl_chat, pada proses hapus pesan ini, ketika
sender atau receiver yang menghapus pesan dimana sender dan receiver ini dalam
satu percakapan, maka pesan yang telah diterima dan dikirim oleh sender maupun
3.2.4 DFD Manajemen Teman Level 2
Berikut ini adalah DFD level 2 dari proses manajemen pertemanan:
Kirim pesan
Gambar 3.5 DFD Manajemen Teman Level 2
Dari gambar 3.5 dapat dijelaskan, dalam manajemen pertemanan user(sender
atau receiver) dapat mengirim pesan dan menghapus teman dari pertemanan.
Pada proses mengirim pesan, pesan yang dikirim oleh sender akan diproses oleh proses kirim pesan dan kemudian pesan disimpan kedalam database sesuai
dengan id_sender dan id_receiver, kemudian proses terima pesan akan mengambil
pesan tersebut dari database sesuai dengan id_sender dan id_receiver yang kemudian
mengirimkannya kepada receiver.
Akan tetapi proses terima pesan akan secara langsung memberi pesan yang
telah dikirimkan oleh seorang pengirim kepada penerima sesuai id_sender dan
id_receiver tanpa melalui proses kirim pesan.
Pada proses hapus pertemanan, pertama sekali user mengirimkan id teman
kepada proses hapus pertemanan, kemudian proses hapus teman akan menghapus
pertemanan antara user dan seorang teman dengan cara menghapus id_user dan
3.2.5 DFD Manajemen Pengguna Level 2
Berikut ini adalah DFD level 2 dari proses manajemen atas pengguna lain:
Tambah
Gambar 3.6 DFD Manajemen Pengguna Level 2
Dari gambar 3.6 dapat dijelaskan bahwa proses menambah pertemanan pada
NIC Messenger yaitu dengan user mengirim id_pengguna melalui halaman list
pengguna NIC Messenger, kemudian proses tambah pertemanan akan menyimpan
id_pengguna dan id_user kedalam database.
3.3 Flowchart
Flowchart adalah penggambaran dari urutan-urutan dan langkah-langkah prosedur
pada sebuah program dalam tampilan grafik (Setiawan, 2011). Flowchart dibutuhkan
bagi seorang developer software untuk memudahkan developer tersebut dalam
mengembangkan aplikasi, dengan adanya flowchart developer dapat menyampaikan
gambaran dasar dari rancangan aplikasi yang dibangun kepada klien atau kepada
anggota tim lainnya yang ikut mengembangkan aplikasi secara bersama, dengan
demikian kesalahan komunikasi antar anggota tim dapat dihindari.
Adapun fungsi lainnya dari flowchart ini dibuat adalah agar developer atau
pengembang aplikasi perorangan dapat melihat kembali tahapan-tahapan yang akan
dikerjakan jika suatu saat terjadi kesalahan dalam perancangan aplikasi.
Berikut in adalah bentuk-bentuk flowchart atau diagram alur yang menjelaskan
alur proses NIC Messenger dari awal hingga akhir, termasuk proses enkripsi dari
plainteks menjadi terenkripsi menggunakan algoritma One Time Pad, dan
mengenkripsi kunci One Time Pad yang digunakan dengan algoritma RSA, hingga
3.3.1 Flowchart Sistem
Berikut ini adalah flowchart dari sistem NIC Messenger:
Username
Pilih chat
Dari gambar 3.8 dapat dijelaskan bahwa, software memulai dengan mengecek
apakah pengguna sudah memiliki akun NIC Messenger atau belum, jika sudah maka
user diharuskan untuk melakukan proses login, jika belum maka user harus
melakukan proses registrasi pengguna baru.
Setelah itu user melakukan proses login, jika login diterima maka user akan
ditampilkan pada halaman utama dengan tiga fitur yaitu: Chat yang berfungsi untuk
menampilkan daftar chat terakhir, NIC yang berfungsi untuk menampilkan daftar
teman dan LIST yang berfungsi untuk menampilkan daftar semua pengguna NIC
Messenger. Jika login pengguna tidak berhasil, maka user dapat mengulangi kembali
menginput kombinasi username dan password atau melakukan proses lupa password.
Jika user melakukan proses lupa password, user harus menginput email dan jika email
tersebut telah terdaftar, maka sistem akan mengirim password pengguna ke email
tersebut.
Setelah berhasil login, user dapat memilih untuk mengakses halaman NIC,
LIST atau Chat. Jika mengakses halaman NIC, maka sistem akan menampilkan daftar
teman. Jika user memilih satu temannya, maka sistem akan menampilkan pilihan
untuk teman tersebut yaitu: mengirim pesan dan menghapus pertemanan. Jika memilih
untuk mengirim pesan, maka sistem akan mengalihkan user ke halaman Chat dan
sistem kemudian menyimpannya kedalam database, setelah itu sistem akan
mengambil pesan terenkripsi tersebut dan mendekripsi pesan tersebut menjadi pesan
asli kepada receiver. Pada halaman chat user (sender atau receiver) juga dapat
menghapus pesan secara keseluruhan. Jika user memilih untuk menghapus pesan,
maka sistem akan menghapus pesan dari database sesuai id_user dan id_receiver.
Kemudian pada halaman LIST, sistem akan menampilkan daftar semua
pengguna NIC Messenger, jika user ingin menambahkan salah satu pengguna sebagai
teman, maka sistem akan menyimpan id_user dan id_pengguna tersebut kedalam
3.3.2 Flowchart Enkripsi Pesan
Berikut ini adalah flowchart dari proses enkripsi pesan:
Mulai
Enkripsi One Time Pad
Enkripsi RSA 512-Bit
Selesai
Gambar 3.9 Flowchart Proses Enkripsi
Berdasarkan flowchart pada gambar 3.9, proses enkripsi melalui dua tahapan
yaitu proses enkripsi menggunakan One Time Pad, dimana pada tahapan ini sistem
akan mengenkripsi pesan asli, kemudian tahapan kedua adalah enkripsi menggunakan
RSA 512-Bit dimana sistem akan menggunakan RSA 512-Bit untuk mengenkripsi
kunci One Time Pad yang digunakan untuk mengenkripsi pesan asli. Berikut ini
adalah gambar 3.10 yang merupakan flowchart dari enkripsi One Time Pad, gambar
3.11 merupakan flowchart dari enkripsi RSA 512-Bit , dan gambar 3.12 merupakan
P =Pesan
E = sebuah bilangan acak antara angka
n = bilangan
Dari gambar 3.10 dapat dijelaskan sebuah proses enkripsi pesan, pertama
sekali sistem akan menghitung panjang pesan yang dikirim sender, kemudian
melakukan proses pengambilan nilai-nilai acak sebagai kunci enkripsi One Time Pad.
Lihat rumus Linear Congruential Generator untuk enkripsi One Time Pad
pada rumus nomor 3.
Dimana:
X = Bilangan acak sementara yang telah didapat untuk dikalkulasikan kembali.
a = Bilangan pengali
c = Bilangan pencacah
t = Waktu dalam milidetik
M = Batas maksimal
Variabel a, c dan m bersifat tetap, variabel ini digunakan untuk menghasilkan
nilai acak yang benar-benar acak yang didapat dari algoritma Linear Congruential
Generatorsplus Time (Schneier, 1996).
Misal dilakukan proses LCG + Time untuk 5 buah nilai acak:
X = 1; a = 105; c = 71; M = 1024; t = milidetik
Lakukan perulangan sebanyak 5 kali dengan setiap kali perulangan melakukan kalkulasi X[i+1] = ((a * X) + c + t) mod M
X[0] = ((105 * 441) +71 + 891145) mod 1024 = 441
X[1] = ((105 * 561) +71 + 891145) mod 1024 = 561
X[2] = ((105 * 873) +71 + 891145) mod 1024 = 873
X[3] = ((105 * 865) +71 + 891145) mod 1024 = 865
X[4] = ((105 * 25) +71 + 891145) mod 1024 = 25
Jadi nilai acak yang didapat adalah 441, 561, 873, 865, 25
Nilai acak ini digunakan sebagai kunci enkripsi dan dekripsi pada algoritma
One Time Pad
Setelah sistem mendapatkan kunci Algoritma One Time Pad melalui algoritma
LCG yang dikombinasikan dengan waktu, selanjutnya sistem akan mengenkripsi
Lihat rumus algoritma One Time Pad pada rumus nomor 10.
Dimana:
C = Array penyimpan ciphertext
P = Plainteks
K = Kunci untuk enkripsi One Time Pad yang didapat dari algoritma LCG+Time
N = Batas banyaknya bilangan ASCII yang digunakan
Misal dilakukan proses enkripsi dengan plainteks “DASAR”:
Ubah plainteks menjadi bilangan ASCII dan dibagi dalam blok-blok P
P1 = D => 68
P2 = A => 65
P3 = S => 83
P4 = A => 65
P5 = R => 82
Kemudian setiap blok dilakukan enkripsi
C1 = (68 + 441) mod 255 = 254
C2 = (65 + 561) mod 255 = 116
C3 = (83 + 873) mod 255 = 191
C4 = (65 + 865) mod 255 = 165
C5 = (82 + 25) mod 255 = 107
Jadi pesan terenkripsi adalah 254 116 191 165 107
Setelah mendapatkan pesan terenkripsi, sistem mengenkripsi kunci One Time Pad
yang didapat sebelumnya menggunakan algoritma RSA.
Lihat rumus algoritma enkripsi RSA pada rumus nomor 1.
Dimana:
C = Array penyimpan kunci terenkripsi
P = Kunci asli
E = Kunci publik RSA
Berdasarkan gambar 3.11 pertama sekali sistem akan membangkitkan kunci
RSA sebagai berikut:
Ambil dua bilangan prima sebagai nilai P dan Q
Misal nilai P = 38183 dan Q = 48017, kemudian dilakukan pengujian bilangan prima dengan Algoritma Rabin-Miller sesuai gambar 3.10
Kemudian lakukan pengujian apakah kondisi dari GCD(P-1, Q-1) = 1, jika Ya maka lanjutkan, jika Tidak maka lakukan pengambilan dua bilangan prima
untuk P dan Q kembali
Hitung nilai N = P*Q = 1833433111
nilai ɸ(n) = (P-1)*(Q-1) = 1833346912
Kemudian sistem akan mencari nilai acak yang memenuhi PBB(e, ɸ(n)) = 1, maka didapat E = 23
Kemudian sistem akan mencari nilai untuk D.
Dengan rumus:
D ΞE-1 (mod ɸ(n)) (12)
D Ξ23-1 (mod 1833346912)
D = 1036239559
Setelah sistem mendapatkan kunci publik dan rahasia dari Algoritma RSA,
dilakukan proses enkripsi pada kunci yang digunakan Algoritma One Time Pad
sebelumnya yaitu 441 561 873 865 25 , sebagaimana berikut:
Ubah kunci One Time Pad yang telah didapat kedalam bentuk blok-blok P
P1 = 441
P2 = 561
P3 = 873
P4 = 865
Kemudian enkripsi setiap blok-blok M menggunakan RSA
C1 = 44123 mod 1833433111 = 1182022997
C2 = 56123 mod 1833433111 = 1499756931
C3 = 87323 mod 1833433111 = 1604525808
C4 = 86523 mod 1833433111 = 496575193
C5 = 2523 mod 1833433111 = 1788289593
Maka kunci One Time Pad terenkripsi adalah 1182022997 1499756931 1604525808 496575193 1788289593
Kemudian simpan pesan terenkripsi, kunci One Time Pad terenkripsi dan kunci RSA kedalam database berdasarkan id_chat
3.3.3 Flowchart Dekripsi Pesan
Berikut ini adalah flowchart dari proses dekripsi pada pesan :
Mulai
Dekripsi RSA 512-Bit
Dekripsi One Time Pad
Selesai
Berdasarkan gambar 3.13 dapat dijelaskan bahwasanya, proses dekripsi dalam
sistem terdapat dua tahapan yaitu, proses dekripsi kunci OTP menggunakan RSA 512
-Bit kemudian dekripsi pesan asli menggunakan One Time Pad.
Berikut ini adalah flowchart dari proses dekripsi kunci OTP yang digunakan
dalam mengenkripsi pesan asli menggunakan RSA 512-Bit.
P = C[i]^d mod N i = 0
apakah (i <= J)
i += 1 P[i] = P Benar
Salah
C = Crypted_OPKey J = Panjang_OTPKey
d dan n = RSAKey
OTPKey = P Mulai
Selesai
Berikut ini adalah flowchart proses dekripsi menggunakan One Time Pad.
i = 0
apakah (i <= N)
P = C[i] - Key[i] % k
i += 1 P[i] = P Benar
Salah
C = crypted_text N = panjang pesan K = jumlah karakter
ASCII Key = OTPKey
P = Pesan asli
Selesai Mulai
Gambar 3.15 Dekripsi One Time Pad
Dari gambar 3.14 dapat dijelaskan langkah-langkah proses dekripsi pesan,
pertama sekali sistem akan mengambil pesan terenkripsi, kunci algoritma One Time
Pad yang terenkripsi dan kunci algoritma RSA dari database berdasarkan id_chat.
Adapun proses dekripsi pesan adalah sebagai berikut:
Sistem melakukan perulangan sebanyak panjang karakter pesan
Setiap perulangan melakukan kalkulasi dekripsi RSA
Lihat rumus dekripsi algoritma RSA pada rumus nomor 2.
C1 = 1182022997
C2 = 1499756931
C3 = 1604525808
C4 = 496575193
C5 = 1788289593
Kemudian dekripsi setiap blok-blok P dengan rumus dekripsi RSA
P1 = 11820229971036239559 mod 1833433111 = 441
P2 = 14997569311036239559 mod 1833433111 = 561
P3 = 16045258081036239559 mod 1833433111 = 873
P4 = 4965751931036239559 mod 1833433111 = 865
P5 = 17882895931036239559 mod 1833433111 = 25
Maka kunci One Time Pad yang berhasil didekripsi adalah 441 561 873 865 25
Setelah sistem mendapatkan kunci algoritma One Time Pad, selanjutnya
sistem akan mendekripsi pesan terenkripsi menggunakan kunci tersebut sebagaimana
dapat dilihat pada gambar 3.15, sebagai berikut:
Ubah pesan terenkripsi 254 116 191 165 107 kedalam blok-blok M
M1 = 254
M2 = 116
M3 = 191
M4 = 165
M5 = 107
Kemudian sistem melakukan perulangan sebanyak panjang karakter pesan
Setiap perulangan, sistem melakukan kalkulasi dekripsi.
Lihat rumus dekripsi algoritma One Time Pad pada rumus nomor 11.
P1 = (254 – 441) mod 255 = 68
P2 = (116 – 561) mod 255 = 65
P3 = (191 – 873) mod 255 = 83
P4 = (165 – 865) mod 255 = 65
Kemudian ubah blok-blok P kedalam bentuk abjad
P1 = 68 => D
P2 = 65 => A
P3 = 83 => S
P4 = 65 => A
P5 = 82 => R
Setelah sistem berhasil mendapatkan pesan asli hasil dari proses dekripsi,
pesan asli tersebut akan ditampilkan oleh sistem secara otomatis kedalaman halaman
chat pada penerima pesan.
3.4 Perancangan Sistem
Pada penelitian ini perancangan sistem terbagi dua yakni menjelaskan tentang
kebutuhan perangkat lunak yang digunakan dalam perancangan sistem NIC
Messenger dan perancangan antar muka sistem yang nantinya akan digunakan pada
setiap halaman NIC Messenger.
3.4.1 Kebutuhan Perangkat Lunak
Adapun aplikasi NIC Messenger ini dibangun dengan menggunakan bahasa
pemrograman Javascript, Ajax dan HTML untuk aplikasi pada sisi pengguna yang
berjalan pada sistem operasi Android, dan menggunakan bahasa pemrograman PHP
versi 5.3 pada sisi server, serta menggunakan DBMS MySQL untuk pengelolaan
database.
3.4.2 Perancangan Antar Muka Sistem
Perancangan sistem diperlukan agar sistem yang dibangun sesuai dengan yang
diharapkan. Dengan adanya rancangan antar muka bertujuan untuk memudahkan
pengguna dalam pemakaian sistem. Berikut ini adalah beberapa rancangan low fidelity
A. Form Registrasi
Berikut ini adalah rancangan dari form registrasi :
Gambar 3.16 Form Registrasi
Pada 3.16 diatas dapat dilihat bahwa terdapat enam input box yang harus diisi
dan dua command button yaitu: fullname, username, email, phone number, password,
retype password, submit dan reset.
Keterangan:
A. Fullname, nama lengkap user (pengguna) yang akan memakai software
messenger ini.
B. Username, sebagai identitas pengguna yang unik antara satu pengguna
dengan pengguna lainnya pada saat aktifitas login.
C. Email, untuk mengirimkan link aktifasi akun.
D. Phone number, untuk informasi tambahan bagi pengguna kepada pengguna
lainnya.
E. Password, untuk aktifitas login.
F. Retype password, untuk menguji apakah password yang telah diinputkan
telah sesuai dengan yang diinginkan oleh pengguna agar tidak terjadi
kekeliruan.
G. Submit, tombol untuk mengirim informasi dari form registrasi kepada
sistem untuk disimpan kedalam database.
H. Reset, tombol untuk mengosongkan semua input box.
A
B
C
D
E
F
B. Form Login
Berikut ini adalah rancangan dari formlogin :
Gambar 3.17 Form Login
Pada gambar 3.17 dapat dilihat bahwa terdapat dua input box dan dua
command button yaitu: username, password, submit dan reset.
Keterangan:
A. Username, untuk melakukan authentifikasi pengguna kedalam sistem.
B. Password, untuk melakukan authentifikasi pengguna kedalam sistem.
C. Submit, tombol untuk mengirim kombinasi username dan password kepada
sistem untuk diproses.
D. Reset, tombol untuk mengosongkan semua input box.
C. Halaman Utama
Pada halaman utama terdapat empat tombol untuk bernavigasi yaitu: Option, Chat, NIC dan List. Tombol option berfungsi untuk menampilkan opsi untuk logout, tombol chat berfungsi untuk menampilkan daftar percakapan, tombol NIC berfungsi untuk menampilkan daftar teman, dan tombol List berfungsi untuk menampilkan daftar pengguna NIC.
A
B
Pada gambar 3.18 dapat dilihat bahwa halaman utama menampilkan halaman
chat, yaitu halaman yang menampilkan daftar dari teman yang pernah mengirim pesan kepada si pengguna. Pada halaman ini nantinya juga akan menampilkan jumlah pesan
yang telah terkirim dan diterima antara pengguna dan teman pengguna.
D. Halaman Daftar Teman
Berikut ini adalah rancangan dari halaman daftar teman:
Gambar 3.19 Halaman Daftar Teman
Keterangan:
A. Option, tombol yang berfungsi untuk menampilkan fitur logout dan
informasi tentang aplikasi.
B. NIC, judul dari halaman yang sedang aktif saat ini.
C. Kolom yang digunakan untuk menampung seluruh daftar teman.
D. NIC, tombol dari menu NIC yang berfungsi untuk menampilkan seluruh
teman.
E. Chat, tombol dari menu Chat yang berfungsi untuk menampilkan seluruh
percakapan pada teman.
F. List, tombol dari menu List yang berfungsi untuk menampilkan seluruh
pengguna NIC Messenger.
A B
C
Pada gambar 3.19 dapat dilihat bahwa halaman NIC hanya menampilkan daftar
dari pengguna yang telah terhubung dengan si pengguna. Pengguna hanya perlu
memilih salah satu teman dari halaman NIC untuk mengirimkan pesan, dan juga dapat
menghapus teman yang telah dipilih dari pertemanan. Jika koneksi antara pengguna
dan teman tersebut telah terhapus dari database, maka semua pesan antara mereka
berdua juga telah terhapus dari database.
E. Halaman Hapus Teman
Berikut ini adalah rancangan dari halaman hapus pertemanan:
Gambar 3.20 Halaman Hapus Teman
Keterangan:
A. Pesan peringatan yang akan ditampilkan kepada pengguna ketika pengguna
ingin menghapus pertemanan dari seseorang.
B. Yes, tombol konfirmasi menyetujui sistem untuk menghapus pertemanan
dari seorang teman.
C. No, tombol pembatalan untuk menghapus pertemanan dari seorang teman,
dan kembali ke halaman sebelumnya.
A
F. Halaman Daftar Pengguna
Berikut ini adalah rancangan dari halaman daftar pengguna
Gambar 3.21 Halaman Daftar Pengguna
Keterangan:
A. Option, tombol yang berfungsi untuk menampilkan fitur logout dan
informasi tentang aplikasi.
B. NIC, judul dari halaman yang sedang aktif saat ini.
C. Kolom yang digunakan untuk menampung seluruh daftar teman.
D. NIC, tombol dari menu NIC yang berfungsi untuk menampilkan seluruh
teman.
E. Chat, tombol dari menu Chat yang berfungsi untuk menampilkan seluruh
percakapan pada teman.
F. List, tombol dari menu List yang berfungsi untuk menampilkan seluruh
pengguna NIC Messenger.
Pada gambar 3.21 dapat dilihat bahwa halaman list berfungsi untuk
menampilkan seluruh pengguna NIC Messenger, fitur ini berguna untuk
menghubungkan antara satu user dengan user lainnya yang belum berteman.
A B
C