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

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