• Tidak ada hasil yang ditemukan

Kombinasi Algoritma RSA 512-BIT Dan One Time PAD Untuk Pengamanan Pesan Pada NIC Messenger

N/A
N/A
Protected

Academic year: 2016

Membagikan "Kombinasi Algoritma RSA 512-BIT Dan One Time PAD Untuk Pengamanan Pesan Pada NIC Messenger"

Copied!
110
0
0

Teks penuh

(1)

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

(2)

PADA NIC

MESSENGER

SKRIPSI

Diajukan 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

(3)

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,

(4)

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

(5)

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.

(6)

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).

(7)

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).

(8)

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

(9)

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

(10)

BAB 5 KESIMPULAN DAN SARAN ... 78

5.1. Kesimpulan ... 78

5.2. Saran ... 78

DAFTAR PUSTAKA ... 80

(11)

DAFTAR TABEL

Hal

Tabel 2.1 Tabel Penelitian Terdahulu 18

(12)

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

(13)

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

(14)

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).

(15)

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).

(16)

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,

(17)

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.

(18)

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

(19)

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

(20)

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,

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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,

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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>>

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

3.3.1 Flowchart Sistem

Berikut ini adalah flowchart dari sistem NIC Messenger:

Username

(41)

Pilih chat

(42)

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

(43)

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

(44)

P =Pesan

(45)

E = sebuah bilangan acak antara angka

(46)

n = bilangan

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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.

(53)

 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

(54)

 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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

Gambar

Gambar 3.1 Use Case Diagram
Gambar 3.3 DFD Level 1
Gambar 3.7 Flowchart Sistem
Gambar 3.8 Flowchart Halaman Utama
+7

Referensi

Dokumen terkait

Angket ini saya maksudkan sebagai alat pengumpulan data dalam rangka menyusun skripsi yang berjudul “ Etos Kerja Penenun dalam Meningkatkan Status Ekonomi (Studi Deskriptif

1. Maksiat adalah melakukan suatu perbuatan yang diharamkam syarak dan meninggalkan perbuatan yang diwajibkan syarak. Perbuatan maksiat ini tidak saja yang menyangkut

a) Nilai dari success call rate pada jarak 3 meter rata-rata 90% dan pada jarak 10 meter mempunyai niai rata-rata 87,5% per 20 panggilan. b) Nilai jitter yang terdapat

Hasil penyadapan dengan pola sadap horizontal memiliki produktivitas getah yang lebih tinggi (15,64 g/takik) dibandingkan pola vertikal (11,85 g/takik). Akan tetapi pada

Solcca cajro csciiertiicpKcn ofcripni in i bsayDitltii kosMJll tca-t: caulitea yna&lt;j aqya bcdopl teroteca ' dolna. csnccrl fcateJ»fcaiica oton litcra tar-11 twrotor

Oleh karena itu penulis membuat sebuah program aplikasi dengan mengambil kasus tentang system pakar gigi untuk diaplikasikan pada handphone, karena handphone merupakan media yang

(3) Tidak termasuk objek retribusi sebagaimana dimaksud pada ayat (2) adalah tempat usaha/kegiatan yang telah ditentukan oleh. Pemerintah, Pemerintah Propinsi

Pernyataan kelima yaitu “Petugas ramah dan sopan terhadap Wajib Pajak” memperoleh bobot rata-rata 427 dengan nilai rata-rata 4,27 termasuk dalam kategori sangat setuju