3.2.5 DFD Manajemen Pengguna Level 2
Berikut ini adalah DFD level 2 dari proses manajemen atas pengguna lain:
Tambah pertemanan
6.1 sender
receiver
Tbl_nic_list Id pengguna
Id pengguna Status tambah pertemanan
Status tambah pertemanan Id pengguna
Status tambah pertemanan
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 proses dekripsi kembali menjadi pesan semula.
Universitas Sumatera Utara
3.3.1 Flowchart Sistem
Berikut ini adalah flowchart dari sistem NIC Messenger:
Username Password
Fullname Email
Phone number Username
Password
Uji autentikasi login
Apa email terdaftar ?
Password dikirimkan
ke email Masukkan username,
password, fullname, email, phone number
Masukkan username
dan password
Data disimpan kedalam
database Ya
Benar Salah
Ya Tidak
selesai Menampilkan
- halaman login - menu daftar
- menu lupa password
Mulai
Masukkan email
Email Login ?
Lupa password?
Tidak
Ya Registrasi?
Tidak
Ya
Halaman Utama
Tidak
Gambar 3.7 Flowchart Sistem
Universitas Sumatera Utara
Pilih chat dari teman
Ambil pesan dari database
- Id_chat, - Chat
Berdasarkan - Id_sender
- Id_receiver
Kirim pesan baru?
Masukkan pesan
Simpan pesan ke database
- Id_sender - Id_receiver
- Chat_terenkripsi Tampilkan
daftar teman Pilih teman
Id_user, Id_teman
Proses hapus teman
Tampilkan daftar pengguna
Pilih pengguna
Tambah teman?
Id_user, Id_teman
Proses tambah teman
Ya Tidak
Ya Ya
Tidak Ya
Tidak
Selesai Mulai
Menampilkan pilihan
- Chat - Nic
- List
Chat ? Ya
Nic ? Tidak
List ? Tidak
Ya Ya
Tidak
Kirim Pesan?
Hapus Teman? Tidak
Proses Dekripsi
Proses Enkripsi
Gambar 3.8 Flowchart Halaman Utama
Universitas Sumatera Utara
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 menjadikan user tersebut sebagai sender. Jika user memilih untuk menghapus
pertemanan, maka sistem akan menghapus pertemanan antara user dan teman berdasarkan id_user dan id_teman.
Pada halaman Chat, sender dapat mengirimkan pesan kepada receiver, pertama sekali pesan yang dikirim oleh sender akan dienkripsi terlebih dahulu oleh
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
database .
Universitas Sumatera Utara
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 flowchart dari algoritma Rabin-Miller sebagai pembangkit bilangan prima.
Universitas Sumatera Utara
P =Pesan n = panjang pesan
X = nilai acak sementara
Key = list nilai acak T = waktu dlm milidetik
Apakah i = n
i = 0
X = a X + c + t M
I += 1 X[i] = X
Benar Salah
P = Pesan Key = kunci
otp K = jumlah
karakter ASCII
i = 0
Apakah i = n
C = P[i] + Key[i] k
I += 1 C[i] = C
Benar Salah
Crypted_text = C
OTPKey = X Mulai
A A
Selesai
Gambar 3.10 Enkripsi One Time Pad
Universitas Sumatera Utara
E = sebuah bilangan acak antara angka 3 sampai Phi-1
apakah GCDe, phi == 1
Salah N = PQ
Phi = P-1 Q-1
Benar Gunakan e dan n
C = P[i]e mod N
i = 0
apakah i = J
i += 1 C[i] = C
Benar Salah
Crypted_OTPKey = C
Selesai d
≡
e-1 mod Phi
B B
Mulai
Uji Bilangan Prima
M = OTPKey J = pjg_pesan
Gambar 3.11 Enkripsi RSA 512-Bit
Universitas Sumatera Utara
n = bilangan acak 256 bit
apakah GCDP-1,
Q-1 == 1 Salah
b = 1 apakah
2b n-1 == 0
b = b + 1 Salah
a = bilangan acak m = n-1 2b
z = am mod n j = 0
Benar
apakah z == 1
atau z == n-1
N = Prima
z = am mod n apakah
z 0 dan z == 1
N = Bukan Prima
j = j + 1 apakah
j b dan z = n-1
z = z2 mod n apakah
z == n-1 N = Prima
Z = z2 mod n apakah
z = b dan z = n-1
N = Bukan Prima
Benar Salah
Benar Salah
Salah
Benar
Benar Salah
Benar Salah
Input N
Selesai Benar
Apakah P == Q
P = 0 Q = 0
P = N Q = N
Salah Benar
Selesai
C Salah
C
Salah
Gambar 3.12 Uji Bilangan Prima
Universitas Sumatera Utara
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
Generators plus 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
pesan yang akan dikirim menggunakan Algoritma One Time Pad.
Universitas Sumatera Utara
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 N =
Kunci publik RSA
Universitas Sumatera Utara
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 GCDP-1, Q-1 = 1, jika Ya
maka lanjutkan, jika Tidak maka lakukan pengambilan dua bilangan prima untuk P dan Q kembali
Hitung nilai N = PQ = 1833433111 nilai
ɸn = P-1Q-1 = 1833346912 Kemudian sistem akan mencari nilai acak yang memenuhi PBBe,
ɸ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
P5 = 25
Universitas Sumatera Utara
Kemudian enkripsi setiap blok-blok M menggunakan RSA C1 = 441
23
mod 1833433111 = 1182022997 C2 = 561
23
mod 1833433111 = 1499756931 C3 = 873
23
mod 1833433111 = 1604525808 C4 = 865
23
mod 1833433111 = 496575193 C5 = 25
23
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
Gambar 3.13
Flowchart Proses Dekripsi
Universitas Sumatera Utara
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
Gambar 3.14 Dekripsi RSA 512-Bit
Universitas Sumatera Utara
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.
Kemudian ubah kunci One Time Pad terenkripsi 1182022997 1499756931
1604525808 496575193 1788289593 kedalam bentuk blok-blok C
Universitas Sumatera Utara
C1 = 1182022997 C2 = 1499756931
C3 = 1604525808 C4 = 496575193
C5 = 1788289593 Kemudian dekripsi setiap blok-blok P dengan rumus dekripsi RSA
P1 = 1182022997
1036239559
mod 1833433111 = 441 P2 = 1499756931
1036239559
mod 1833433111 = 561 P3 = 1604525808
1036239559
mod 1833433111 = 873 P4 = 496575193
1036239559
mod 1833433111 = 865 P5 = 1788289593
1036239559
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 P5 = 107
– 25 mod 255 = 82
Universitas Sumatera Utara
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