dokumen-dokumen yang mirip

BAB 3 PERANCANGAN POGRAM APLIKASI

BAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI


Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

BAB III BAB III METODE PENELITIAN

BAB III ANALISIS DAN PERANCANGAN

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

Studi dan Implementasi Sistem Kriptografi Rabin

BAB IV PERANCANGAN. proses utama yaitu pembentukan kunci, proses enkripsi dan proses dekripsi.

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN ALGORITMA RSA BERBASIS WEB

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

BAB II TINJAUAN PUSTAKA

BAB III ANALISA DAN PERANCANGAN

BAB 3 PERANCANGAN PROGRAM

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

BAB III ANALISIS DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

PENGAMANAN DOKUMEN MENGGUNAKAN METODE RSA (RIVEST SHAMIR ADLEMAN)BERBASIS WEB

BAB III PERANCANGAN SISTEM

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB III ANALISIS. Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB IV HASIL DAN PEMBAHASAN

BAB II BAB II TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN SISTEM

IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM SKRIPSI


BAB IV HASIL DAN PEMBAHASAN

BAB III ANALISIS DAN DESAIN SISTEM

Bab 3. Metode dan Perancangan Sistem

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

HASIL DAN PEMBAHASAN. Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n) 3 ) (Menezes et al. 1996).

KRIPTOGRAFI KUNCI PUBLIK ALGORITMA ELGAMAL DENGAN METODE THE SIEVE OF ERATOSTHENES UNTUK PEMBANGKITAN BILANGAN PRIMA SKRIPSI SYAUVIKA LUBIS

BAB IV HASIL DAN UJI COBA

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB 2 LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

ANALISIS WAKTU ENKRIPSI-DEKRIPSI FILE TEXT MENGGUNAKAN METODA ONE-TIME PAD (OTP) DAN RIVEST, SHAMIR, ADLEMAN (RSA)

BAB II TINJAUAN PUSTAKA

Pengaman Pengiriman Pesan Via SMS dengan Algoritma RSA Berbasis Android

BAB III ANALISA MASALAH DAN PERANCANGAN

VISUALISASI ALGORITMA RSA DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISA DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB III KUNCI PUBLIK

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

APLIKASI PENGAMANAN DOKUMEN OFFICE DENGAN ALGORITMA KRIPTOGRAFI KUNCI ASIMETRIS ELGAMAL

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

Perbandingan Algoritma RSA dan Diffie-Hellman

PENERAPAN ALGORITMA KRIPTOGRAFI ASIMETRIS RSA UNTUK KEAMANAN DATA DI ORACLE

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI ALGORITMA RSA DAN QR CODE UNTUK KEAMANAN TRANSKRIP NILAI DI POLITEKNIK NEGERI LHOKSEUMAWE

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB 2 TINJAUAN TEORETIS

ABSTRAK. Universitas Kristen Maranatha

BAB 3 METODE PENELITIAN

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

BAB III ANALISIS DAN PEMODELAN PERANGKAT LUNAK

BAB 1 PENDAHULUAN Latar belakang

FAST EXPONENTIATION. 1. Konsep Modulo 2. Perpangkatan Cepat

BAB III ANALISIS DAN PERANCANGAN SISTEM. penambahan dalam sistem tersebut, maka akan untuk diselesaikan.

BAB 3 PERANCANGAN PROGRAM APLIKASI

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Perbandingan Penggunaan Bilangan Prima Aman Dan Tidak Aman Pada Proses Pembentukan Kunci Algoritma Elgamal

BAB III ANALISIS DAN DESAIN SISTEM

VISUALISASI ALGORITMA RSA DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

Enkripsi Teks Surat Elektronik ( ) Berbasis Algoritma Rivest Shamir Adleman (RSA)

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

BAB III ANALISIS DAN DESAIN SISTEM

Algoritma Kriptografi Kunci-publik RSA menggunakan Chinese Remainder Theorem

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

BAB III ANALISIS DAN PERANCANGAN SISTEM

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB III ANALISA DAN PERANCANGAN. pengamanan file teks dengan menggunakan algoritma triangle chain dan rivest cipher (RC4).

DESAIN DAN IMPLEMENTASI PRETTY GOOD PRIVACY (PGP) UNTUK KEAMANAN DOKUMEN PADA PT PUTRA JATRA MANDIRI PALEMBANG

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

Analisis dan Implementasi Serangan Kunci secara Konkuren pada Algoritma RSA

Penerapan Algoritma Kriftografi Rives Shamir Adleman (RSA) Pada Sebuah Image

Transkripsi:

BAB III ANALISA DAN PERANCANGAN 3.1 Analisis Sistem Analisis sistem merupakan uraian dari sebuah sistem kedalam bentuk yang lebih sederhana dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat dilakukan perbaikan-perbaikannya. 3.2 Analisis Masalah Dokumen merupakan data yang sangat penting baik itu berupa dokumen pribadi, perusahaan atau organisasi dan lain sebagainya. Oleh karena itu, sebuah dokumen seharusnya dijaga kerahasiaannya agar tidak disalahgunakan oleh orang yang tidak berhak. Disini seringkali masalah keamanan menjadi urutan kedua atau bahkan urutan yang terakhir dalam daftar hal-hal yang dianggap penting. Apabila menggangu performa sistem, masalah keamanan ini sering dikurangi atau bahkan dihilangkan. Salah satu cara untuk mengamankan sebuah dokumen yaitu dengan mengubah dokumen asli menjadi dokumen yang tidak bisa dibaca oleh orang lain atau sering disebut dengan enkripsi. Dengan mengidentifikasi masalah yang ada, akan membantu dalam menganalisis persyaratan sistem yang akan dikembangkan sehingga tujuan dari sistem tersebut tercapai. Masalah utama yang akan dikembangkan oleh penulis adalah bagaimana menjaga keamanan dan kerahasiaan data pada aplikasi kriptografi dengan menerapkan algoritma RSA sebagai sistem keamanan dan kerahasiaan data. 3.3 Analisis Persyaratan Analisis persyaratan terdiri atas dua bagian yaitu analisis fungsional dan analisis non-fungsional. 23

24 3.3.1 Analisis Fungsional Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang dapat dilakukan oleh sistem. Berikut merupakan persyaratan yang harus dimiliki oleh sistem. 1. Sistem harus dapat melakukan enkripsi data dengan menggunakan RSA Algorithm. 2. Sistem harus dapat mengembalikan data seperti bentuk awal saat dilakukan dekripsi pesan. 3.3.2 Analisis Non-Fungsional Beberapa hal yang meliputi persyaratan non-fungsional adalah sebagai berikut: 1. Perfoma Sebuah sistem yang dibangun harus dapat menunjukan hasil enkripsi menggunakan algoritma RSA, waktu proses enkripsi, menampilkan ukuran asli dan ukuran setelah proses enkripsi, layanan directory penyimpanan hasil enkripsi dan dekripsi, serta dapat mengembalikan data seperti bentuk awal saat proses dekripsi. 2. Mudah Digunakan Sistem yang dibangun haruslah sederhana agar mudah dioperasikan oleh pengguna (user). 3. Hemat Biaya Tidak membutuhkan perangkat tambahan yang mengeluarkan biaya. 4. Dokumentasi Sistem yang dibangun harus dapat menampilkan hasil pemrosesan yang dilakukan. 5. Manajemen Kualitas Sistem yang dibangun harus berkualitas, baik dalam tampilan maupun penggunaannya. 6. Kontrol

25 Sistem yang dibangun memiliki kontrol berupa generate, encrypt dan decrypt, yaitu pada saat memulai sistem harus terlebih dahulu membuat key, baru kemudian dapat melakukan proses enkripsi dan dekripsi. 3.4 Implementasi RSA Algorithm RSA (Rivest Shamir Adleman) merupakan algoritma asimetris, dimana kunci yang digunakan pada saat proses enkripsi dan dekripsi berbeda [19]. Dalam proses pengitungan algoritma RSA untuk menentukan hasilnya terdapat 3 tahapan. Berikut adalah 3 tahapan proses dari algoritma RSA: 1. Pembangkit Kunci Dalam pembangkit kunci terdapat ketentuan nilai-nilai yang harus ditentukan dari algoritma RSA yaitu : a. Pilih dua buah bilangan prima yang cukup besar, p dan q b. Hitung n = p.q (sebaiknya p q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n). Jika p dan q diketahui fungsi euler dapat dengan mudah dikomputasi. c. Hitung fungsi euler Φ(n) = (p-1)(q-1). d. Pilih kunci e dengan menggunakan random number generator suatu bilangan e antara 1 dan Φ(n) yang koprima dengan Φ(n). Dengan syarat gcd (e, Φ(n)) = 1, dapat dilakukan dengan menggunakan euclid algorithm. e. Kemudian mengkomputasi inverse dari e modulo Φ(n), yaitu e.d 1 (mod Φ (n)). Dapat dilakukan menggunakan extended euclid algorithm.

26 2. Enkripsi Dalam enkripsi pesan menggunakan rumus sebagai berikut: C = M e ( mod n ) 3. Dekripsi Dalam dekripsi pesan menggunakan rumus sebagai berikut: M = C d ( mod n ) Contoh enkripsi pesan menggunakan algoritma RSA. Dalam penerapan algoritma RSA terdapat penentuan nilai-nilai yang harus ditentukan yaitu adalah sebagai berikut: 1. Menentukan dua buah bilangan prima yang berbeda yaitu dengan notasi bilangan prima p dan q, kedua bilangan prima ini tidak boleh sama nilainya. p= 47 dan q =71 2. Menentukan modulus yang berfungsi sebagai salah satu pasangan kunci publik maupun kunci rahasia. modulus di wakilkan dengan variabel n. Nilai n didapatkan dari perkalian dua buah bilangan prima yang ditentukan pada langkah sebelumnya, yang diwakilkan oleh variabel p dan variabel q. n = p x q n = 47 x 71 = 3337 3. Menentukan nilai Φ(n), di mana Φ(n) = ( p 1 ) x ( q 1 ). Φ(n) = (47 1) x (71 1) Φ(n) = 46 x 70 = 3220 4. Langkah selanjutnya adalah menentukan enciphering exponent yang nantinya digunakan sebagai pasangan kunci publik bersama modulus. enciphering exponent diwakilkan oleh variabel e. Formula untuk menentukan nilai e sebagai berikut :

27 gcd = ( e, Φ(n) ) = 1 dengan syarat 1 < e < m dan e adalah bilangan prima. gcd adalah akronim dari greatest common divisor atau faktor persekutuan terbesar (FPB). Bila gcd atau FPB dari dua buah bilangan bernilai = 1, misalnya gcd (e, Φ(n) ) = 1, artinya nilai e merupakan bilangan yang relative. Algoritma Euclid digunakan untuk mencari gcd dua bilangan sebagai berikut: e = 79 gcd(e, 3220) = gcd(79, 3220) 3220 Mod 79 = 60 79 Mod 60 = 19 60 Mod 19 = 3 19 Mod 3 = 1 3 Mod 1 = 0 dari bilangan gcd atau FPB dari dua buah bilangan harus bernilai satu maka nilai e adalah 79. 5. Menghitung nilai d integer sehingga e.d 1 (mod Φ (n)) atau d = ( 1 + n. Φ (n) ) / e, atau dapat digunakan algoritma Extended Euclid sebagai berikut: Mencoba nilai : d = 1018 e.d 1 (mod 3220) 79.1018 80422 mod 3220 = 3142 (bukan 1) d = 1019 e.d 1 (mod 3220) 79.1019 80501 mod 3220 = 1 Diperoleh nilai d adalah 1019 setelah semua penentuan nilai-nilai algoritma RSA telah ditentukan maka langkah selanjutnya mengenkripsi pesan. Sebagai contoh isi pesan yang akan dienkripsikan yaitu: Plaintext : edi ketemu di mercubuana

28 Dari isi pesan tersebut lalu dikonversikan ke dalam bilangan desimal sesuai dalam karakter ASCII. Pada Tabel 3.1 menunjukkan plaintext atau pesan asli diubah ke dalam bilangan decimal yang sesuai dalam tabel ASCII di setiap karakternya. Tabel 3.1 Konversi plaintext ke dalam karakter ASCII Plaintext Ascii Decimal e 101 d 100 i 105 space 32 k 107 e 101 t 116 e 101 m 109 u 117 space 32 d 100 i 105 space 32 m 109 e 101 r 114 c 99 u 117 b 98 u 117 a 97 n 110 a 97

29 Setelah diubah ke dalam bentuk bilangan decimal sesuai dalam yang terdapat dalam karakter ASCII maka langkah selanjutnya adalah mengenkripsi pesan tersebut dengan rumus enkripsi algoritma RSA sebagai berikut: C = M e ( mod n ) Keterangan : C = Chipertext M = Karakter yang telah diubah ke dalam bilangan decimal sesuai ASCII / plaintext. e = enciphering exponent / kunci publik n = modulo pembagi Sesuai rumus enkripsi di atas maka setiap karakter dari isi pesan atau plaintext tersebut di enkripsi menjadi ciphertext. Maka dari hasil enkripsi setiap karakter isi pesan atau plaintext adalah sebagai berikut: Tabel 3.2 Enkripsi Plaintext plaintext C = M e ( mod n ) Chipertext e 101 79 ( mod 3337 ) = 1113 1113 d 100 79 ( mod 3337 ) = 1287 1287 i 105 79 ( mod 3337 ) = 193 193 space 32 79 ( mod 3337 ) = 1379 1379 k 107 79 ( mod 3337 ) = 374 374 e 101 79 ( mod 3337 ) = 1113 1113 t 116 79 ( mod 3337 ) = 1031 1031 e 101 79 ( mod 3337 ) = 1113 1113 m 109 79 ( mod 3337 ) = 1864 1864 u 117 79 ( mod 3337 ) = 2289 2289 space 32 79 ( mod 3337 ) = 1379 1379 d 100 79 ( mod 3337 ) = 1287 1287 i 105 79 ( mod 3337 ) = 193 193

30 space 32 79 ( mod 3337 ) = 1379 1379 m 109 79 ( mod 3337 ) = 1864 1864 e 101 79 ( mod 3337 ) = 1113 1113 r 114 79 ( mod 3337 ) = 2560 2560 c 99 79 ( mod 3337 ) = 2197 2197 u 117 79 ( mod 3337 ) = 2289 2289 b 98 79 ( mod 3337 ) = 617 617 u 117 79 ( mod 3337 ) = 2289 2289 a 97 79 ( mod 3337 ) = 957 957 n 110 79 ( mod 3337 ) = 2668 2668 a 97 79 ( mod 3337 ) = 957 957 Hasil chipertext di atas adalah sebagai berikut: Chipertext : 1113 1287 193 1379 374 1113 1031 1113 1864 2289 1379 1287 193 1379 1864 1113 2560 2197 2289 617 2289 957 2668 957 Untuk membuka hasil pesan yang telah dienkripsi yaitu dengan cara melakukan dekripsi pesan yaitu dengan rumus dekripsi pesan sebagai berikut: M = C d ( mod n ) Keterangan : C = Chipertext M = Karakter yang telah diubah ke dalam bilangan decimal sesuai ASCII / plaintext. d = deciphering exponent / kunci privat n = modulo pembagi Sesuai rumus dekripsi di atas maka setiap karakter dari isi pesan atau plaintext tersebut di enkripsi menjadi ciphertext. Maka dari hasil dekripsi setiap karakter isi pesan atau ciphertext diubah menjadi plaintext atau pesan asli adalah sebagai berikut:

31 Tabel 3.3 Dekripsi plaintext Chipertext M = C d ( mod n ) Plaintext 1113 1113 1019 ( mod 3337 ) = 101 e 1287 1287 1019 ( mod 3337 ) = 100 d 193 193 1019 ( mod 3337 ) = 105 i 1379 1379 1019 ( mod 3337 ) = 32 space 374 374 1019 ( mod 3337 ) = 107 k 1113 1113 1019 ( mod 3337 ) = 101 e 1031 1031 1019 ( mod 3337 ) = 116 t 1113 1113 1019 ( mod 3337 ) = 101 e 1864 1864 1019 ( mod 3337 ) = 109 m 2289 2289 1019 ( mod 3337 ) = 117 u 1379 1379 1019 ( mod 3337 ) = 32 space 1287 1287 1019 ( mod 3337 ) = 100 d 193 193 1019 ( mod 3337 ) = 105 i 1379 1379 1019 ( mod 3337 ) = 32 space 1864 1864 1019 ( mod 3337 ) = 109 m 1113 1113 1019 ( mod 3337 ) = 101 e 2560 2560 1019 ( mod 3337 ) = 114 r 2197 2197 1019 ( mod 3337 ) = 99 c 2289 2289 1019 ( mod 3337 ) = 117 u 617 617 1019 ( mod 3337 ) = 98 b 2289 2289 1019 ( mod 3337 ) = 117 u 957 957 1019 ( mod 3337 ) = 97 a 2668 2668 1019 ( mod 3337 ) = 110 n 957 957 1019 ( mod 3337 ) = 97 a Hasil dari dekripsi di atas adalah sebagai berikut: Plaintext : edi ketemu di mercubuana

32 3.5 Rancangan Sistem Program yang akan dibuat terdiri dari sepuluh buah Form, yaitu terdiri dari Form Menu Utama, Generate Key, Encryption, Decryption, Help, Generate Key Help, Encryption Help, Decryption Help, About, Exit. Untuk dapat menggunakan aplikasi user dapat memilih menu generate key. Pada menu ini, user diharuskan mengisi key name untuk menandai public key dan private key dengan nama yang telah dibuat. User memilih direktori hasil penyimpanan public key dan private key. Setelah user menentukan inputan tersebut, user dapat mengeklik menu generate key untuk melakukan proses pembuatan kunci, selanjutnya akan tampil output berupa informasi hasil dari generate key tersebut, menu clear untuk mereset semua data inputan yang dimasukkan. Sedangkan menu close untuk keluar dari form generate key dan kembali ke form menu utama. User kembali ke form menu utama kemudian memilih menu encryption. User memilih file yang akan di enkripsi dan direktori penyimpanan hasil enkripsi serta memilih public key yang telah dibuat. Baru kemudian user dapat mengeklik menu encrypt untuk melakukan proses enkripsi, selanjutnya akan tampil output berupa informasi hasil dari enkripsi tersebut, menu clear untuk mereset semua data inputan yang dimasukkan. Sedangkan menu close untuk keluar dari form encryption file dan kembali ke form menu utama. Sedangkan untuk mengembalikan file yang telah dienkripsi menjadi file asli, user dapat juga memilih menu decryption. User memilih file yang telah di enkripsi dan direktori penyimpanan hasil dekripsi serta memilih private key yang telah dibuat. Baru kemudian user dapat mengeklik menu decrypt untuk melakukan proses dekripsi, selanjutnya akan tampil output berupa informasi hasil dari dekripsi tersebut, menu clear untuk mereset semua data inputan yang dimasukkan. Sedangkan menu close untuk keluar dari form decryption file dan kembali ke form menu utama. Serta ada menu help untuk membantu user dalam menggunakan aplikasi tersebut, menu about yang menjelaskan tentang data diri pembuat aplikasi, menu exit untuk keluar dari program. Secara

33 umum, rancangan program yang akan dibuat dapat dilihat pada gambar 3.1 Arsitektur Kerja Aplikasi. Gambar 3.1 Arsitektur Kerja Aplikasi 3.6 Rancangan Layar Rancangan layar sangat penting dalam membuat suatu program. Oleh karena itu rancangan layar harus mudah dimengerti dan dipahami, agar dalam menggunakan program user merasa nyaman dalam menggunakannya sehingga rancangan layar mudah dipahami user dan tidak mengalami kesulitan saat menggunakan program [20]. Dalam program ini, akan digambarkan rancangan layar masing-masing form, yaitu rancangan layar form menu utama, generate key, encryption, decryption, help, generate key help, encrytion help, decryption help dan about. Serta menu exit untuk keluar dari menu utama. 3.6.1 Rancangan Layar Form Menu Utama Rancangan layar pada Gambar 3.2 merupakan form pertama yang ditampilkan pada saat user menggunakan aplikasi pengamanan data ini. Di dalam form menu utama terdapat enam menu. Menu yang pertama adalah

34 menu Generate Key, yang berisi halaman untuk membuat public key dan private key. Menu yang kedua adalah menu Encryption, dimana user dapat melakukan proses enkripsi file. Menu yang ketiga adalah menu Decryption, user dapat melakukan proses dekripsi terhadap file yang dienkripsi. Menu yang ke empat adalah menu Help, terdapat tiga buah form yang pertama form Generate Key Help, yang berisi cara membuat public key dan private key, yang kedua form Encryption Help, dimana dijelaskan cara melakukan proses enkripsi file dan yang ketiga form Decryption Help, yang berisi cara melakukan proses dekripsi file yang dienkripsi. Gambar 3.2 Rancangan Layar Form Menu Utama 3.6.2 Rancangan Layar Form Menu Generate Key Form yang berfungsi untuk membangkitkan sepasang kunci publik dan kunci privat. Pasangan kunci ini nantinya akan digunakan pada saat melakukan enkripsi dan dekripsi file.

35 Gambar 3.3 Form Menu Generate Key 3.6.3 Rancangan Layar Form Menu Encryption Form Encryption adalah form yang berfungsi untuk mengenkripsi file atau mengubah file menjadi tidak bisa dibaca. Sebelum melakukan enkripsi, user diminta untuk memilih file yang akan dienkripsi, memilih direktori penyimpanan file hasil enkripsi dan memilih public key yang digunakan untuk mengenkripsi file tadi. Setelah user menentukan ketiga inputan tadi, user dapat mengklik menu encrypt untuk menjalankan proses enkripsi. Menu clear untuk mereset semua data inputan yang dimasukkan. Sedangkan menu close adalah untuk keluar dari form encryption file dan kembali ke form menu utama. Form tersebut seperti pada gambar 3.4.

36 Gambar 3.4 Form Menu Encryption 3.6.4 Rancangan Layar Form Menu Decryption Form Decryption adalah form yang berfungsi untuk melakukan dekripsi file atau mengubah file dari yang tidak terbaca menjadi ke bentuk semula. Sebelum melakukan dekripsi, user diminta untuk memilih file yang sudah terenkripsi, output file direktori tempat penyimpanan file hasil dekripsi dan private key. Menu clear untuk mereset semua data inputan yang dimasukkan. Sedangkan menu close adalah untuk keluar dari form decryption file dan kembali ke form menu utama. Form tersebut seperti pada gambar 3.5.

37 Gambar 3.5 Form Menu Decryption 3.6.5 Rancangan Layar Form Menu Help Form Menu Help merupakan penjelasan atau panduan mengenai cara penggunaan aplikasi agar lebih dipahami. Pada form ini memliki sub form yaitu Generate Key Help, Encryption Help dan Decryption Help yang memiliki penjelasan dan panduan yang sesuai dengan fungsinya. Form tersebut seperti pada gambar 3.6.

38 Gambar 3.6 Form Menu Help Form Sub Menu Help merupakan petunjuk ataupun panduan bagi user agar mempermudah user untuk menjalankan aplikasi tersebut. Maka apabila user mengklik menu-menu di form help maka akan menampilkan sub form help sesuai dengan menu di form help yang dipilih user.

39 Gambar 3.7 Form Sub Menu Help 3.6.6 Rancangan Layar Form Menu About Pada Form Menu About berisikan informasi tentang pembuat aplikasi pengamanan data. Form tersebut seperti pada gambar 3.8. Gambar 3.8 Form Menu About

40 3.7 Flowchart 3.7.1 Flowchart Form Menu Utama Pada Form Menu Utama terdiri dari dari Menu Generate Key, Menu Encryption, Menu Decryption, Menu Help, Menu About dan Menu Exit. Jika user memilih Menu Encryption maka akan menuju ke form encryption file. Begitu juga dengan Menu Decryption maka akan menuju ke form decryption file. Apabila user memilih Menu Help, maka akan tampil ke form help. Jika user memilih Menu About akan tampil form about dan jika memilih Menu Exit maka akan keluar dari aplikasi. Alur proses Menu Utama seperti pada gambar 3.9.

41 Gambar 3.9 Flowchart Form Menu Utama

42 3.7.2 Flowchart Form Menu Generate Key Gambar 3.10 Flowchart Form Menu Generate Key

43 3.7.3 Flowchart Proses Generate Key Pada proses Generate Key menjelaskan proses pembangkit kunci publik dan privat. Kunci publik digunakan untuk enkripsi dan kunci privat digunakan untuk dekripsi. Alur proses Generate Key seperti pada gambar 3.11. Gambar 3.11 Flowchart Proses Generate Key

44 3.7.4 Flowchart Form Menu Encryption Pada Form Menu Encryption merupakan form untuk memproses enkripsi. Alur proses Form Menu Encryption seperti pada gambar 3.12. Gambar 3.12 Flowchart Form Menu Encryption

45 3.7.5 Flowchart Proses Encryption Pada proses Encryption menjelaskan proses enkripsi. Alur proses proses Encryption seperti pada gambar 3.13. Gambar 3.13 Flowchart Proses Encryption

46 3.7.6 Flowchart Form Menu Decryption Pada Form Menu Decryption merupakan form untuk memproses dekripsi. Alur proses Form Menu Decryption seperti pada gambar 3.14. Gambar 3.14 Flowchart Form Menu Decryption

47 3.7.7 Flowchart Proses Decryption Pada Proses Decryption menjelaskan proses dekripsi. Alur proses Decryption seperti pada gambar 3.15. Gambar 3.15 Flowchart Proses Decryption

48 3.7.8 Flowchart Form Menu Help Pada Form Menu Help merupakan form yang menjelaskan panduan program. Alur proses Form Menu Help seperti pada gambar 3.16. Gambar 3.16 Flowchart Form Menu Help

49 3.7.9 Flowchart Form Menu About Pada Form Menu About merupakan form data diri tentang pembuat. Alur proses About seperti pada gambar 3.17. Gambar 3.17 Flowchart Form Menu About 3.8 Pseudocode Pseudocode adalah representasi atau penyajian algoritma agar mudah dipahami. Pseudocode bukan terjemahan dari suatu bahasa pemrograman sehingga penulisanya tidak menggunakan gaya bahasa pemrograman tertentu [21]. 3.8.1 Pseudocode Form Menu Utama Pseudocode ini menjelaskan proses Menu Utama yang terdiri dari Generate Key, Encryption, Decryption, Help, About dan Exit. Apabila memilih Menu Generate Key maka akan muncul Form Generate Key. Jika memilih Menu Encryption maka akan muncul Form Encryption. Begitu

50 juga bila memilih Decryption maka akan muncul Form Decryption. Apabila memilih Menu Help dan About maka akan muncul Form Help dan Form About. Namun, bila memilih Menu Exit maka akan keluar dari Aplikasi tersebut. 1. Tampilkan Menu Utama 2. Input Pilih 3. If Pilih = Generate Key Then 4. Tampilkan Form Generate Key 5. Else if = Encryption Then 6. Tampilkan Form Encryption 7. Else if = Decryption Then 8. Tampilkan Form Decryption 9. Else if = Help Then 10. Tampilkan Form Help 11. Else if = About Then 12. Tampilkan Form About 13. Else if = Exit Then 14. Keluar dari Program 15. Else 16. Kembali ke baris 1 17. End if 3.8.2 Pseudocode Form Menu Generate Key Pseudocode ini menjelaskan proses pembuatan kunci publik dan kunci privat. Form digunakan bagi user yang ingin membuat kunci sebelum melakukan proses enkripsi dan dekripsi. 1. Tampilkan Generate Key 2. Input Pilih 3. Input Key Name 4. If Pilih = Save To Then 5. Pilih directory save Public Key and Private Key 6. Else If pilih = Generate Key Then

51 7. Cek key name, Cek directory key 8. if key name!=null, Directory Key!=null Then 9. Proses Generate Key 10. Alert : Generate Key Success! 11. Else 12. Kembali ke baris 1 13. End if 14. Else If pilih = Clear Then 15. Hapus isi Form Generate Key 16. Kembali ke baris 1 17. Else If pilih = Close 18. Kembali ke Menu Utama 19. Else 20. Kembali ke baris 1 21. End if 3.8.3 Pseudocode Proses Generate Key Pada pseudocode Generate Key ini menjelaskan bagaimana cara pembuatan kunci hingga menghasilkan dua buah kunci yaitu kunci publik dan kunci privat. 1. Set random prime P dan Q 2. Hitung Modulo (n), n = P * Q 3. Totient (n) = phi, phi = (P-1)(Q-1) 4. Hitung nilai e 5. If gcd (e, phi) = 1, 1 < e < phi Then 6. Proses hitung nilai d 7. If e.d = 1 mod phi, 1 < d < phi 8. Get Public Key (e,n), Get Private Key (d,n) 9. Create Name to Save Generate Key 10. Select Directory Output Key 11. Save Public Key & Private Key 12. Else

52 13. Hitung kembali nilai d 14. End if 15. Else 16. Hitung kembali nilai e 17. End if 3.8.4 Pseudocode Form Menu Encryption Pseudocode ini menjelaskan proses Enkripsi. Proses dimana file yang akan dienkripsi. 1. Tampilkan Encryption 2. Input Pilih 3. If Pilih = Browse Then 4. Pilih File 5. Tampilkan Encryption 6. Else If Pilih Save To Then 7. Pilih Diretory Output 8. Tampilkan Encryption 9. Else If Pilih Open Then 10. Pilih Public Key 11. Tampilkan Encryption 12. Else If Pilih = Encrypt 13. Proses Validasi 14. If file!= null, directory!=null, key!= null 15. Proses Enkripsi 16. Alert : Encryption Success! 17. Kembali ke baris 1 18. Else 19. Alert : Please Entry All Column! 20. Kembali ke baris 1 21. Else If Pilih Clear Then 22. Hapus isi Form Encryption 23. Kembali ke baris 1

53 24. Else If pilih = Close 25. Kembali ke Menu Utama 26. Else 27. Kembali ke baris 1 28. Else if 3.8.5 Pseudocode Proses Encryption Pseudocode ini menjelaskan bagaimana proses melakukan proses enkripsi hingga berhasil. 1. Ambil File dari Directory 2. Mendapatkan Ukuran File 3. Mengambil Public Key yang telah dibuat 4. Melakukan Proses Enkripsi File Dengan Algoritma RSA 5. Mangambil File Hasil Enkripsi 6. Hasil Enkripsi 7. Simpan File Encryption 3.8.6 Pseudocode Form Menu Decryption 1. Tampilkan Encryption 2. Input Pilih 3. If Pilih = Browse Then 4. Pilih File 5. Tampilkan Decryption 6. Else If Pilih Save To Then 7. Pilih Diretory Output 8. Tampilkan Decryption 9. Else If Pilih Open Then 10. Pilih Private Key 11. Tampilkan Decryption 12. Else If Pilih = Decrypt 13. Proses Validasi 14. If file!= null, directory!=null, key!= null

54 15. Proses Dekripsi 16. Alert : Decryption Success! 17. Kembali ke baris 1 18. Else 19. Alert : Please Entry All Column! 20. Kembali ke baris 1 21. Else If Pilih Clear Then 22. Hapus isi Form Decryption 23. Kembali ke baris 1 24. Else If pilih = Close 25. Kembali ke Menu Utama 26. Else 27. Kembali ke baris 1 28. End if 3.8.7 Pseudocode Proses Decryption Pseudocode ini menjelaskan bagaimana proses melakukan proses dekripsi hingga berhasil. 1. Ambil File Hasil Enkripsi dari Directory 2. Mendapat Ukuran File 3. Mengambil Private Key yang telah dibuat 4. Melakukan Proses Dekripsi dengan Algoritma RSA 5. Hasil Dekripsi 6. Simpan File Decryption 3.8.8 Pseudocode Form Menu Help Pseudocode ini menjelaskan bagaimana alur proses pada Form Help. 1. Tampilkan Help 2. Input Pilih 3. If Pilih = Generate Key Help 4. Tampilkan Generate Key Help

55 5. Input Pilih 6. If pilih = Close 7. Kembali ke baris 4 8. Else 9. Kembali ke baris 1 10. Else If Pilih = Encryption Help 11. Tampilkan Encryption Help 12. Input Pilih 13. If Pilih = Close 14. Kembali ke baris 11 15. Else 16. Kembali ke baris 1 17. Else If Pilih = Decryption Help 18. Tampilkan Decryption Help 19. Input Pilih 20. If Pilih = Close 21. Kembali ke baris 18 22. Else 23. Kembali ke baris 1 24. Else If pilih = Close 25. Kembali ke Menu Utama 26. Else 27. Kembali ke baris 1 28. End if 3.8.9 Pseudocode Form Menu About Pseudocode ini menjelaskan bagaimana alur proses pada Form About. 1. Tampilkan About 2. Input Pilih 3. If Pilih = Close 4. Kembali ke Menu Utama

56 5. Else 6. Kembali ke baris 1 7. End if 3.9 Flowchart Sistem Algoritma Sistem algoritma RSA digunakan untuk masing-masing proses dalam sistem enkripsi, sistem dekripsi, seperti yang telah dibahas sebelumnya. 3.9.1 Sistem Algoritma RSA Algoritma Kriptografi RSA mempunyai dua proses yang utama, yaitu proses enkripsi dan dekripsi. Alur prosesnya seperti berikut. 1. Flowchart Proses Enkripsi RSA Gambar 3.18 Flowchart Proses Enkripsi RSA

57 2. Flowchart Proses Dekripsi RSA Gambar 3.19 Flowchart Proses Dekripsi RSA

58 3.10 Desain Proses Algoritma Desain proses algoritma menjelaskan proses enkripsi dan dekripsi algoritma RSA. a. Proses Algoritma RSA 1. Proses Enkripsi RSA 1. Ambil File dari directory 2. Read File 3. Read All Bytes File 4. Mengambil nilai Byte Array menjadi String 5. Get M = Plaintext 6. Convert Plaintext to Binary 7. Convert Binary to ASCII 8. Read Public Key (e,n) 9. Encryption File C = (m^e) mod n 10. Get C = Ciphertext 11. Save File Encryption to Directory 2. Proses Dekripsi RSA 1. Ambil File Encryption dari Directory 2. Read File Encryption 3. Get C = Ciphertext 4. Read Private Key (d,n) 5. Decryption File M = (c^d) mod n 6. Get M = Plaintext 7. Save File Decryption to Directory